Author: kib
Date: Tue Dec  6 11:28:17 2011
New Revision: 228307
URL: http://svn.freebsd.org/changeset/base/228307

Log:
  Force linker error when created shared library contains a relocation
  against text. Provide the override switch to turn off the strict
  behaviour. Apparently, openssl libcrypto needs it due to assembler
  code not being PIC.
  
  Discussed with:       bf
  MFC after:    2 weeks

Modified:
  head/secure/lib/libcrypto/Makefile
  head/share/mk/bsd.lib.mk

Modified: head/secure/lib/libcrypto/Makefile
==============================================================================
--- head/secure/lib/libcrypto/Makefile  Tue Dec  6 11:24:03 2011        
(r228306)
+++ head/secure/lib/libcrypto/Makefile  Tue Dec  6 11:28:17 2011        
(r228307)
@@ -7,6 +7,7 @@ SUBDIR=         engines
 
 LIB=           crypto
 SHLIB_MAJOR=   6
+ALLOW_SHARED_TEXTREL=
 
 NO_LINT=
 

Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk    Tue Dec  6 11:24:03 2011        (r228306)
+++ head/share/mk/bsd.lib.mk    Tue Dec  6 11:28:17 2011        (r228307)
@@ -167,6 +167,11 @@ SOBJS+=            ${OBJS:.o=.So}
 .if defined(SHLIB_NAME)
 _LIBS+=                ${SHLIB_NAME}
 
+SOLINKOPTS=    -shared -Wl,-x
+.if !defined(ALLOW_SHARED_TEXTREL)
+SOLINKOPTS+=   -Wl,--fatal-warnings -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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to