On Mon, Dec 05, 2011 at 12:00:48AM +0000, Jilles Tjoelker wrote: > Author: jilles > Date: Mon Dec 5 00:00:47 2011 > New Revision: 228269 > URL: http://svn.freebsd.org/changeset/base/228269 > > Log: > libc: Eliminate 13 relative relocations in wctype(). > This reminds me the following change I had intended to do for quite some time. The hack for openssl is due to buggy assembler, which exactly the case I want to avoid for the base code.
commit 3fdba61936a011b768845a8336ad2529e77e8ddb Author: Kostik Belousov <kostik@sirion> Date: Mon Dec 5 13:01:48 2011 +0200 Fail the build when text relocations are generated for dso. diff --git a/secure/lib/libcrypto/Makefile b/secure/lib/libcrypto/Makefile index 0a1704c..73f5cb7 100644 --- a/secure/lib/libcrypto/Makefile +++ b/secure/lib/libcrypto/Makefile @@ -7,6 +7,7 @@ SUBDIR= engines LIB= crypto SHLIB_MAJOR= 6 +ALLOW_SHARED_TEXTREL= NO_LINT= diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 1e43921..40632de 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -167,6 +167,11 @@ SOBJS+= ${OBJS:.o=.So} .if defined(SHLIB_NAME) _LIBS+= ${SHLIB_NAME} +SOLINKOPTS= -shared -Wl,-x -Wl,--fatal-warnings +.if !defined(ALLOW_SHARED_TEXTREL) +SOLINKOPTS+= -Wl,--warn-shared-textrel +.endif + .if target(beforelinking) ${SHLIB_NAME}: ${SOBJS} beforelinking .else @@ -178,11 +183,11 @@ ${SHLIB_NAME}: ${SOBJS} @ln -fs ${.TARGET} ${SHLIB_LINK} .endif .if !defined(NM) - @${CC} ${LDFLAGS} ${SSP_CFLAGS} -shared -Wl,-x \ + @${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \ -o ${.TARGET} -Wl,-soname,${SONAME} \ `lorder ${SOBJS} | tsort -q` ${LDADD} .else - @${CC} ${LDFLAGS} ${SSP_CFLAGS} -shared -Wl,-x \ + @${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \ -o ${.TARGET} -Wl,-soname,${SONAME} \ `NM='${NM}' lorder ${SOBJS} | tsort -q` ${LDADD} .endif
pgpwAFCOJxhZ6.pgp
Description: PGP signature