[M3devel] Progress bootstrapping, but still trouble

Rodney M. Bates rodney.bates at wichita.edu
Fri Jun 1 22:57:35 CEST 2007


My first problem bootstrapping cm3:

   ThreadPosix.i3: missing object types:  _t1541f475
   imported by:  TimeStamp.m3

goes away when I either 1) delete the entire cm3 distribution and do a fresh cvs checkout,
                      or 2) do a 'do-cm3-std.sh realclean'.

Thanks to Antony for making me aware of 'realclean', which I hadn't known about.  I have never
been able to satisfactorily clean a cm3 tree before, with 'clean' giving lots of failure messages
and removing things inside LINUXLIBC6 build directories leaving things unable to build due to
missing files.

My second problem:

   rodney at runnymede:/usr/local/cm3/bin$ file m3bundle
   m3bundle: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9,
     dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
   rodney at runnymede:/usr/local/cm3/bin$ ./m3bundle
   -bash: ./m3bundle: No such file or directory

went away after some work on finding libpthreads.  Thanks to Daniel's web page for getting me
to looking at libpthreads.

My cm3.cfg already had, inside SYSTEM_LIBS, the line:

   "PTHREAD"    : [ "-Xlinker", "-Bdynamic", "-L/lib", "-lpthread" ],

For one thing, there are three places in my distribution with non-link versions of libpthread*.so:
/lib, /lib/i686, and /usr/lib.  They are all different in size, and I have no clue what the
differences are, but only /usr/lib has a link named libpthread.so, so I guessed that was the
right place and changed cm3.cfg to look there.

That didn't change anything, (same size executable), but removing the "-Xlinker", "-Bdynamic", made
cm3 compile an executable for m3bundle and other things that will load and run.  There is a
libpthread.a in /usr/lib (and nowhere else that I found.)

But this is apparently not the whole story with libraries.
Another program compiles to an executable with the same problem, i.e., attempts
to execute it give -bash: ./LdlBatch: No such file or directory.  The other lines
in my SYSTEM_LIBS also had -Xlinker", "-Bdynamic", but removing them fro"X11" line
gives me this:

new "Version.io" -> linking LdlBatch
/usr/local/cm3/pkg/ui/LINUXLIBC6/libm3ui.a(TrestleOS.mo): In function `TrestleOS__UserName':
/home/rodney/proj/m3/cm3-fresh/cm3/m3-ui/ui/LINUXLIBC6/TrestleOS.m3:32: warning: Using 'getpwuid' in 
statically linked applications requires at runtime the shared libraries from theglibc version used 
for linking
/usr/lib/libX11.a(x11_trans.o): In function `_X11TransSocketOpen':
/usr/include/X11/Xtrans/Xtranssock.c:468: warning: Using 'getaddrinfo' in statically linked 
applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/libX11.a(imLcIm.o): In function `_XimWriteCachedDefaultTree':
/usr/src/rpm/BUILD/libX11-1.0.3/modules/im/ximcp/imLcIm.c:476: warning: memset used with constant 
zero length parameter; this could be due to transposed parameters
/usr/local/cm3/pkg/tcp/LINUXLIBC6/libm3tcp.a(IP.mo): In function `IP__GetCanonicalByAddr':
/home/rodney/proj/m3/cm3-fresh/cm3/m3-comm/tcp/LINUXLIBC6/IP.m3:53: warning: Using 'gethostbyaddr' 
in statically linked applications requires at runtime the shared libraries from the glibc version 
used for linking
/usr/local/cm3/pkg/tcp/LINUXLIBC6/libm3tcp.a(IP.mo): In function `IP__GetHostByName':
/home/rodney/proj/m3/cm3-fresh/cm3/m3-comm/tcp/LINUXLIBC6/IP.m3:21: warning: Using 'gethostbyname' 
in statically linked applications requires at runtime the shared libraries from the glibc version 
used for linking
/usr/lib/libX11.a(x11_trans.o): In function `_X11TransSocketINETConnect':
/usr/include/X11/Xtrans/Xtranssock.c:1670: warning: Using 'getservbyname' in statically linked 
applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/libX11.a(ConnDis.o): In function `GetAuthorization':
/usr/src/rpm/BUILD/libX11-1.0.3/src/ConnDis.c:1232: undefined reference to `XauDisposeAuth'
/usr/src/rpm/BUILD/libX11-1.0.3/src/ConnDis.c:1037: undefined reference to `XauGetBestAuthByAddr'
/usr/src/rpm/BUILD/libX11-1.0.3/src/ConnDis.c:1176: undefined reference to `XdmcpWrap'
/usr/lib/libX11.a(CrGlCur.o): In function `open_library':
/usr/src/rpm/BUILD/libX11-1.0.3/src/CrGlCur.c:72: undefined reference to `dlopen'
/usr/lib/libX11.a(CrGlCur.o): In function `fetch_symbol':
/usr/src/rpm/BUILD/libX11-1.0.3/src/CrGlCur.c:107: undefined reference to `dlsym'
/usr/src/rpm/BUILD/libX11-1.0.3/src/CrGlCur.c:109: undefined reference to `dlsym'
collect2: ld returned 1 exit status
Fatal Error: package build failed

Anyone have any ideas on why neither dynamic nor static linking works, or how to figure out what
version of the libraries I need?  Better yet, can anyone point me to some real documentation on
Linux dynamic linking in general?  I've always been overwhelmed with false hits when trying to find
it with a search engine.









-- 
-------------------------------------------------------------
Rodney M. Bates, retired assistant professor
Dept. of Computer Science, Wichita State University
Wichita, KS 67260-0083
316-978-3922
rodney.bates at wichita.edu



More information about the M3devel mailing list