The MASM Forum Archive 2004 to 2012

Project Support Forums => HLA Forum => Topic started by: Randall Hyde on August 29, 2009, 05:47:34 PM

Title: HLA v2.1 is now available on Webster
Post by: Randall Hyde on August 29, 2009, 05:47:34 PM
Hi All,

HLA v2.1 is now up on Webster. Visit the download page at
http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/HighLevelAsm/dnld.html

HLA v2.1 now includes native ELF generation via the HLA back-engine (HLABE) as well as numerous other defect corrections.  Under Linux and FreeBSD you can now directly generate ELF object files and link them with the HLA standard library (or other code) to produce executable files without going through the GAS assembler (as was done in the past).  You can also generate ELF files under Windows or Mac OS X (though those files are not directly usable under those OSes, you can move them to Linux or FreeBSD after compiling them under Windows or Mac OS X).

Cheers,
Randy Hyde


Title: Re: HLA v2.1 is now available on Webster
Post by: latte on September 01, 2009, 08:59:57 AM
Great!  Thanks very much for doing this (sheesh, you must never sleep.... ;)   ) 
- latte
Title: Re: HLA v2.1 is now available on Webster
Post by: DarkWolf on September 08, 2009, 06:14:27 PM
Cool, I have been getting a real headache trying to build 32 bit apps on a 64 bit machine (32 bit machine are getting harder to find). I never had a problem with HLA itself on AMD64 just the code it produces, I'll be interested in seeing what happens. MS may drop support for the win32 api in Windows 7 (or so) what happens to HLA when the world finally leaves 32 bit behind ? (Apart from using a VM I mean).
Title: Re: HLA v2.1 is now available on Webster
Post by: Evenbit on September 08, 2009, 07:41:43 PM
DarkWolf -

HLA 2.1 is still a 32-bit development platform.
Title: Re: HLA v2.1 is now available on Webster
Post by: Sevag.K on September 08, 2009, 10:34:36 PM
version 3.0 is slated for 64 bit OS.  By the time that rolls around, I'll probably shrink my 32 bit XP install to 80 gigs and dual-install an actual 64 bit OS on my 64 bit computer.
Kind of off topic, but do you know of any good 64 bit linux packages that play nice with winxp?  Right now I have a dual-boot ubuntu installed as a virtual file with wubi, works well enough but doesn't come in a 64 bit flavor.
Title: Re: HLA v2.1 is now available on Webster
Post by: DarkWolf on September 10, 2009, 08:07:17 PM
Sevag:
Ubuntu is available in 64 bit (though I don't know about wubi) I would avoid Xubuntu though, it's small and not a memory hog like Ubuntu but I don't think they have polished it much. (And Xubuntu is the system giving me this headache.)
FreeBSD is also available in 64 bit (I have this in a VitrualBox VM but haven't used it for HLA or much else like that, FreeBSD requires some real configuring and that is the reason I haven't been too productive with it. But you can set it up anyway you want. There is no livecd that you can install from get the dvd [and avoid the hassle of switching three discs every other package as you install software])
Net and Open BSD can also be found in 64 bit. (And require more configuring than FreeBSD when I tried them.)
If you are already familiar with Ubuntu then get the 64bit version of that.

Evenbit:
And yes I know HLA is 32 bit and I told the linker that but it still gives me a headache.
HLA runs fine and can generate elf object code but when I tell the linker to link for 32 bit it does but the program can't be executed despite being 32 bit
I can run 32 bit programs on AMD64 except ones built on my own.

I examined both with -v and don't know what the 64bit linker is doing different (the ld line is what HLA 2.1 generated not I )

x86 default options with -v
ld     -o "src/project" -lpthread -lc -I /lib/ld-linux.so.2   "src/project.o" "/media/data/Programming/asm/hlalib/hlalib.a"

x86 default options with -l'm elf_i386' -v
ld   -m elf_i386   -o "src/project" -lpthread -lc -I /lib/ld-linux.so.2   "src/project.o" "/media/data/Programming/asm/hlalib/hlalib.a"

x64 default options with -v
(can't do it need to emulate 32 bit in linker)

x64 default options with -l'm elf_i386' -v
ld   -m elf_i386   -o "src/project" "src/project.o" "/media/data/Programming/asm/hlalib/hlalib.a"

x86 file information (identical results from both x86 options above)
$ file src/project
src/project: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

$ ldd src/project
linux-gate.so.1 =>  (0xb7fba000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f90000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e41000)
/lib/ld-linux.so.2 (0xb7fbb000)

x64 file information (identical results from both x64 options above)
$ file src/project
src/project: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

$ ldd src/project
ldd: warning: warning you do not have execution permission for 'src/project'
not a dynamic executable

( Note I also tried including the libraries included when on the x86 cpu when compiling on the x64 and had the same results than if I had not. Also note that I have file permissions set on 'src/project' so the warning means something else. It's somewhere in the linking step, I asked here at MASM forums before and three or so times at Ubuntu forums and at GRC newsgroups. Best answer so far was someone at GRC news thought I didn't have the right libraries but that is as far as it got and never tracked down which ones or where. He thought I was trying to compile without the hlastdlib.a or something. And Ubuntu forums just repeated the mantra of using -m32 with either gcc or ld [which you can't do ld has no such option and I am not using gcc, at the time I used HLA/gas and now just HLA] And one guy gave me the commands for compiling a 32 bit AV in C [whatever I did post it was an assembly question ??] )