steve@groucho.ucar.edu (Steve Emmerson) (11/01/90)
Greetings, I'm puzzled by the behavior of ld(1). It seems to ignore a module in an archive that would otherwise resolve an undefined, global reference. As you can see from the following, the object file "wxp.o" contains a reference to the global symbol ".parse_string", which is defined in the library "libwxp.a", module "tools.o". Yet, even though the library is specified on the link-line, the resolving module is ignored: % echo $PATH /bin:/usr/bin:/usr/ucb:/etc:/usr/bin/X11:/usr/local/bin:/u2/steve/bin/rs6000:/u2/steve/bin:. % ranlib libwxp.a # strictly speaking, this is not needed % cc -o wxp wxp.o libwxp.a -lm 0706-317 ERROR: Unresolved or undefined symbols detected: Symbols in error (followed by references) are dumped to the load map. .get_progname .parse_string .stricmp % /usr/ucb/nm -g wxp.o | grep parse_string U .parse_string % ar x libwxp.a tools.o % /usr/ucb/nm -g tools.o | grep parse_string 000005c8 T .parse_string 000030f0 D parse_string The platform is an RS6000 running AIX 3.1 (with about 200 bug-fixes that arrived two weeks ago on tape). Any ideas? Steve Emmerson steve@unidata.ucar.edu ...!ncar!unidata!steve