[M3devel] PA32_HPUX available
Jay
jay.krell at cornell.edu
Mon Mar 2 16:48:44 CET 2009
http://modula3.elegosoft.com/cm3/uploaded-archives/cm3-PA32_HPUX-1.tar.gz
http://modula3.elegosoft.com/cm3/uploaded-archives/cm3-PA32_HPUX-1.tar.lzma
Here is a current build of PA32_HPUX, including all of "std".
The system builds itself and various gui apps startup.
Pthreads are used. User threads are not implemented.
The man page for get/set/make/swapcontext says they won't necessarily stay compatible.
Dynamic linking is supported and used.
This should match the current source tree, except my change to cm3cfg.common
isn't reflected here -- the backend is not itself optimized.
It requires the GNU C compiler and assembler -- gcc and gas.
It does not require, and probably won't work with, the GNU linker.
e.g. extract binutils and then rm -rf intl gold ld elfcpp binutils,
leaving just like libiberaty, bfd, opcodes, gas,
and then build it, or use -disable-x to not build those directories,
or build it all, but instead of install, just copy gas, it's just one file.
It might require getting up to date patches esp. for ld.
I was not able to build libstdc++ without patching ld, but
building libstdc++ is not necessary for Modula-3. It is a C++ thing.
I'm using HP-UX 11iv1 aka 11.11 (this is two versions out of date,
there is v2 and v3).
The cm3.cfg file in the archive delegates to
$CM3_ROOT/m3-sys/cminstall/src/config-no-install/PA32_HPUX.
and that file is somewhat specific to my configuration.
I can see about making it just use $PATH.
Problem is, on this sytem gcc doesn't support multilibs/-m32/-m64,
so you really need two separate "prefixes" and paths to work with
32bit and 64bit targets, so I use /usr/local/32 and /usr/local/64.
It is possible to bootstrap to a good working system from
the bundled compiler, but you have to go through gcc 3.3.6 first.
There are my full paths in these binaries:
/cm3/lib/libm3core.sl.5 and such
but you can set SHLIB_PATH to a colon delimited directory
that includes where you install to.
I haven't figured out yet how to omit the paths.
Perhaps we should use "$ORIGIN/../lib"?
Also, the stock HP-UX system does contain X or OpenGL headers/libs,
but they are a free download. Search the web.
At least the X headers/libs come with the unbundled compiler.
mentor does not work.
It says: "*** Cannot create TCP port".
If $DISPLAY is not set correctly, the errors are not consistent.
- Jay
More information about the M3devel
mailing list