[M3devel] PPC_DARWIN problems, at least config/5.2.6, maybe all moot

Jay jayk123 at hotmail.com
Tue Dec 25 13:09:31 CET 2007


PPC_DARWIN also has problems...at least in the config.


If you take the 5.2.6 archive, install to /dev2/cm3, accept the defaults,
claim all the missing unused libs are in /usr/lib (opengl, postgres, x11)


you end up with:


jbook:/dev2/j/m3 jay$ cat Hello.m3 


MODULE Hello EXPORTS Main;
IMPORT IO;
BEGIN
IO.Put("Hello\n");
END Hello.


jbook:/dev2/j/m3 jay$ uname -a
Darwin jbook 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc


jbook:/dev2/j/m3 jay$ cm3 -version
Critical Mass Modula-3 version 5.2.6
  last updated: 2003-06-27
  configuration: /cm3/bin/cm3.cfg


jbook:/dev2/j/m3 jay$ cm3
new source -> compiling Hello.m3
 -> linking prog


jbook:/dev2/j/m3 jay$ PPC_DARWIN/prog
dyld: Library not loaded: /var/tmp/cm3/lib/libm3.5.2.dylib
  Referenced from: /dev2/j/m3/PPC_DARWIN/prog
  Reason: image not found
Trace/BPT trap


jbook:/dev2/j/m3 jay$ otool -L PPC_DARWIN/prog
PPC_DARWIN/prog:
        /var/tmp/cm3/lib/libm3.5.2.dylib (compatibility version 5.0.0, current version 5.2.0)
        /Users/wagner/local/cm3/lib/libm3core.5.2.dylib (compatibility version 5.0.0, current version 5.2.0)
        /Users/wagner/local/cm3/lib/libm3gcdefs.5.2.dylib (compatibility version 5.0.0, current version 5.2.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.10)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)


jbook:/dev2/j/m3 jay$ ls -l PPC_DARWIN/prog
-rwxr-xr-x   1 jay  admin  20264 Dec 25 04:43 PPC_DARWIN/prog


At the temporary cost of giving up dynamic linking, you can fix this by removing M3_SPLIT_LIBNAMES_IF_SHARED
and/or M3_SPLIT_LIBNAMES from cm3.cfg, yielding:


jbook:/dev2/j/m3 jay$ otool -L PPC_DARWIN/prog
PPC_DARWIN/prog:
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.10)


jbook:/dev2/j/m3 jay$ ls -l PPC_DARWIN/prog
-rwxr-xr-x   1 jay  admin  1388380 Dec 25 04:48 PPC_DARWIN/prog


jbook:/dev2/j/m3 jay$ PPC_DARWIN/prog
Hello


I will fix the checked in config file...even though it varies a bunch from the 5.2.6 distributed
config, it results in the same.


And, um, does everyone understand what I did with Win32 and making cminstall obsolete?
Ok to do the same on Mac OS X?
You know, it's running things out of the path and/or finding them in their "very standard" locations.
In fact, you can hard code full paths and be ok.
That is, instead of asking the user where their compiler is, hardcoding any of cc, gcc, /usr/bin/cc, /usr/bin/gcc all work fine.
Asking them where ar/ranlib are, similar, though the docs say that libtool replaced those, and ar/ranlib vs. libtool is one way
in which the checked in config and the 5.2.6 distribution's config vary. I'll try for libtool.


The only thing the user really  needs to decide is where to install to, and
the cfg file can discover their choice without any editing.


INSTALL_ROOT = path() & "/.."
BIN_INSTALL   = path() % executables


In terms of wanting to provide some configurable redirection, well, I think an advanced user can manage..
An indirect SYSTEM_CC = "cc" can be left, I guess.


You know, I dare say, that platforms have been reduced and converged enough such that..you can get rid of
Quake and move it into cm3. Um.. do any of the Unix platforms support other than gcc? Other than GNU ld?
Ok, Apple ld is not GNU ld. (Geez, it is just me or is Apple an incredible hodgepodge mess these days?
I mean both in terms of their "system architecture" and their tools. The "system architecture" reveals bunches
of similar redundant subsystems. Try reading through man ld, man ranlib, just try to understand which
flag goes with which mode, which flags are for compatibility with which OS version, and which of the
compatibility flags is either ignored or does something useful... and should I say -lGL or -framework OpenGL??)


That I don't haven't adjusted to Modula-3 and don't mind/prefer writing Quake instead. :)


Some bootstrap was provided. I should look at it, and its config.
Otherwise..I'll look into what it takes to build it all and with dynamic linking.
Perhaps the bootstrap is just fine. But the checked in config is not.


 - Jay

_________________________________________________________________
Share life as it happens with the new Windows Live.
http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_122007
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20071225/f5692aff/attachment-0001.html>


More information about the M3devel mailing list