Ensure we link against libraries in /lib instead of anywhere else and always use the linker in /libexec instead of anywhere else.

This commit is contained in:
Roy Marples 2008-01-11 23:40:22 +00:00
parent 0ec43dfe47
commit d4404ea9c7
2 changed files with 9 additions and 4 deletions

View File

@ -25,6 +25,8 @@ lib${LIB}.a: ${OBJS} ${STATICOBJS}
${SHLIB_NAME}: ${VERSION_MAP} ${SHLIB_NAME}: ${VERSION_MAP}
LDFLAGS+= -Wl,--version-script=${VERSION_MAP} LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
# We need to ensure we use libraries in /lib
LDFLAGS+= -L/${LIBNAME} -Wl,-rpath=/${LIBNAME}
${SHLIB_NAME}: ${SOBJS} ${SHLIB_NAME}: ${SOBJS}
@${ECHO} building shared library $@ @${ECHO} building shared library $@

View File

@ -8,11 +8,14 @@ OBJS+= ${SRCS:.c=.o}
include ${MK}/sys.mk include ${MK}/sys.mk
# Some systems don't include /lib in their standard link path # Some systems don't include /lib in their standard link path
# so we should embed it if different # so we should embed it if different
_RPATH_SH= if test "${SHLIBDIR}" != "/usr/${LIBNAME}"; then \ # This is currently hardcoded for NetBSD which has two dynamic linkers
echo "-Wl,-rpath=/${LIBNAME}"; \ # and we need to use the one in /libexec instead of /usr/libexec
_DYNLINK_SH= if test -e /libexec/ld.elf_so; then \
echo "-Wl,-dynamic-linker=/libexec/ld.elf_so"; \
fi fi
_RPATH!= ${_RPATH_SH} _DYNLINK!= ${_DYNLINK_SH}
LDFLAGS+= ${_RPATH}$(shell ${_RPATH_SH}) LDFLAGS+= ${_DYNLINK}$(shell ${_DYNLINK_SH})
LDFLAGS+= -Wl,-rpath=/${LIBNAME} -L/${LIBNAME}
LDFLAGS+= ${PROGLDFLAGS} LDFLAGS+= ${PROGLDFLAGS}
all: depend ${PROG} all: depend ${PROG}