Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jun 2000 20:25:01 -0700
From:      Andrew Perkins <andrew@violet.org>
To:        freebsd-hackers@freebsd.org
Subject:   circumventing ld default -L paths
Message-ID:  <20000604202451.A12837@violet.org>

next in thread | raw e-mail | index | archive | help
Hello all,

I would like to link some applications against some local libraries
which have conflicting names with those in /usr/lib.  Unfortunately, I
cannot find a way to disable ld from using:

-L/usr/libexec/elf -L/usr/libexec -L/usr/lib

before my -L definitions at compile time.  I have tried -nostdlib,

which is intuitively what should work, however, as many of you
probably know, only removes:

/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o ...<localstuffstays>...
/usr/lib/libgcc.a -lc /usr/lib/libgcc.a /usr/lib/crtend.o /usr/lib/crtn.o

Additionally, I have tried the following environment vars to no avail:
LD_LIBRARY_PATH, LD_PRELOAD, LD_NOSTD_PATH

Note on: LD_PRELOAD
This library is an archive, not a shared object, which

/usr/libexec/ld-elf.so.1

obviously complains about when listed in LD_PRELOAD.

And finally, NO, I do not want to move the system library in /usr/lib
OR rename the library I am using (a modified form of the same lib).

I cheerfully assume that this is easy and I am just missing something.



######## some sample output for clarification ########

$ gcc -v -Wall -O2 -march=pentiumpro -pipe empty.c -o empty
Using builtin specs.
gcc version 2.95.2 19991024 (release)
 /usr/libexec/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -Dunix -D__FreeBSD__=4 -D__FreeBSD_cc_version=400004 -D__i386__ -D__unix__ -D__FreeBSD__=4 -D__FreeBSD_cc_version=400004 -D__i386 -D__unix -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(FreeBSD) -D__OPTIMIZE__ -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__ELF__ empty.c |
 /usr/libexec/cc1 -quiet -dumpbase empty.c -march=pentiumpro -O2 -Wall -version -o - |
 /usr/libexec/elf/as -v -o /home/andrew/tmp/ccr65832.o -
GNU C version 2.95.2 19991024 (release) (i386-unknown-freebsd) compiled by GNU C version 2.95.2 19991024 (release).
GNU assembler version 2.9.1 (i386-unknown-freebsdelf), using BFD version 2.9.1
GNU CPP version 2.95.2 19991024 (release) (i386 FreeBSD/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/include/g++
End of omitted list.
 /usr/libexec/elf/ld -m elf_i386 -dynamic-linker /usr/libexec/ld-elf.so.1 -o empty /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/libexec/elf -L/usr/libexec -L/usr/lib /home/andrew/tmp/ccr65832.o /usr/lib/libgcc.a -lc /usr/lib/libgcc.a /usr/lib/crtend.o /usr/lib/crtn.o



Cordially,
_____________________________________________
Andrew Perkins              andrew@violet.org


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000604202451.A12837>