[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