[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