Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Dec 2011 11:28:17 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r228307 - in head: secure/lib/libcrypto share/mk
Message-ID:  <201112061128.pB6BSH3t087704@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



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