[ http://issues.apache.org/jira/browse/STDCXX-116?page=comments#action_12362878 ]
Andrew Black commented on STDCXX-116: ------------------------------------- Adding -s to the ARFLAGS value caused the compilation to fail, but manually calling ranlib after making the archive produced the following messages that appear to be harmless on first glance. ranlib: file: libstd.a(atomic-cxx.o) has no symbols ranlib: file: libstd.a(export.o) has no symbols ranlib: file: libstd.a(time_get.o) has no symbols ranlib: file: libstd.a(vecbool.o) has no symbols When trying to build the examples, the message I now get is gcc -c -I/Volumes/Orion/Work/stdcxx/include/ansi -D_RWSTD_USE_CONFIG -I/Users/blackaw/Documents/Work/build/include -I/Volumes/Orion/Work/stdcxx/include -I/Volumes/Orion/Work/stdcxx/examples/include -pedantic -nostdinc++ -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align /Volumes/Orion/Work/stdcxx/examples/manual/accum.cpp gcc accum.o -o accum -L/Users/blackaw/Documents/Work/build/lib -lstd -lsupc++ -lm ld: multiple definitions of symbol vtable for std::bad_exception /Users/blackaw/Documents/Work/build/lib/libstd.a(exception.o) definition of vtable for std::bad_exception in section (__DATA,__const) /usr/lib/gcc/darwin/3.1/libsupc++.a(eh_exception.o) private external definition of vtable for std::bad_exception in section (__DATA,__const) ld: multiple definitions of symbol vtable for std::bad_alloc /Users/blackaw/Documents/Work/build/lib/libstd.a(memory.o) definition of vtable for std::bad_alloc in section (__DATA,__const) /usr/lib/gcc/darwin/3.1/libsupc++.a(new_handler.o) private external definition of vtable for std::bad_alloc in section (__DATA,__const) I suspect that the message that was recieved about not having a table of contents was a symptom of the messages I now get building the examples, rather than a true problem > [Mac OS X 10.2.8] Examples fail to build due to LD error > -------------------------------------------------------- > > Key: STDCXX-116 > URL: http://issues.apache.org/jira/browse/STDCXX-116 > Project: STDCXX > Type: Bug > Components: Build > Environment: Mac OS X 10.2.8/Darwin 6.8 with GCC 3.1 > Reporter: Andrew Black > > When attempting to build the examples as part of the make sequence, I recieve > the following messages > gcc -c -I/Volumes/Orion/Work/stdcxx/include/ansi -D_RWSTD_USE_CONFIG > -I/Users/blackaw/Documents/Work/stdcxx//include > -I/Volumes/Orion/Work/stdcxx/include > -I/Volumes/Orion/Work/stdcxx/examples/include -pedantic -nostdinc++ -W > -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long > -Wcast-align /Volumes/Orion/Work/stdcxx/examples/manual/accum.cpp > gcc accum.o -o accum -L/Users/blackaw/Documents/Work/stdcxx//lib -lstd > -lsupc++ -lm > ld: archive: /Users/blackaw/Documents/Work/stdcxx//lib/libstd.a has no table > of contents, add one with ranlib(1) (can't load from it) > make[2]: *** [accum] Error 1 > make[1]: [examples] Error 2 (ignored) > The obvious solution is to call ranlib as part of the make process for the > library, but this would involve altering the make proccess for the config > tests, library and test library, along with requiring conditional logic to > protect other platforms/compilers from this step that would likely cause > problems. > Looking at the man page for ranlib on my linux box here, it appears that a > better solution could be to define ARFLAGS for gcc as being '-s', though I > could potentially see problems emerging were this to be an unconditional > definition. > I will try this solution tonight. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
