Check-in [3af2fe0ca8]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Better handling of symbols in our shared object
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:3af2fe0ca874aaf8d30fa7407a845f8bf41df9f2c68e97e7910cd41b7a0e0998
User & Date: rkeene 2019-06-19 17:58:24
Context
2019-06-19
18:13
Update autoconf scripts from repo Leaf check-in: 5bd22a4abd user: rkeene tags: trunk
17:58
Better handling of symbols in our shared object check-in: 3af2fe0ca8 user: rkeene tags: trunk
17:45
Make hardening optional, disabled by default when statically linking because it requires the linking program to fully participate check-in: 25024a31b0 user: rkeene tags: trunk
Changes

Changes to Makefile.in.

20
21
22
23
24
25
26


27
28
29
30
31
32
33

@EXTENSION_TARGET@: @TCLEXT_BUILD@-@EXTENSION_TARGET@
	mv @TCLEXT_BUILD@-@EXTENSION_TARGET@ @EXTENSION_TARGET@

# The shared object target
shared-@EXTENSION_TARGET@: tls.o tlsBIO.o tlsIO.o tlsX509.o Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o shared-@EXTENSION_TARGET@ tls.o tlsBIO.o tlsIO.o tlsX509.o $(LIBS)



# The static target
static-@EXTENSION_TARGET@: tls.o tlsBIO.o tlsIO.o tlsX509.o Makefile
	$(AR) rcu static-@EXTENSION_TARGET@ tls.o tlsBIO.o tlsIO.o tlsX509.o
	-$(RANLIB) static-@EXTENSION_TARGET@

# Dependencies for all our targets







>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

@EXTENSION_TARGET@: @TCLEXT_BUILD@-@EXTENSION_TARGET@
	mv @TCLEXT_BUILD@-@EXTENSION_TARGET@ @EXTENSION_TARGET@

# The shared object target
shared-@EXTENSION_TARGET@: tls.o tlsBIO.o tlsIO.o tlsX509.o Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o shared-@EXTENSION_TARGET@ tls.o tlsBIO.o tlsIO.o tlsX509.o $(LIBS)
	-@WEAKENSYMS@ shared-@EXTENSION_TARGET@
	-@REMOVESYMS@ shared-@EXTENSION_TARGET@

# The static target
static-@EXTENSION_TARGET@: tls.o tlsBIO.o tlsIO.o tlsX509.o Makefile
	$(AR) rcu static-@EXTENSION_TARGET@ tls.o tlsBIO.o tlsIO.o tlsX509.o
	-$(RANLIB) static-@EXTENSION_TARGET@

# Dependencies for all our targets

Changes to aclocal/tcltls_openssl.m4.

115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
	if test -z "$TCLTLS_SSL_CPPFLAGS"; then
		TCLTLS_SSL_CPPFLAGS="`"${PKGCONFIG}" openssl --cflags-only-I $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration])
	fi
	PKG_CONFIG_PATH="${PKG_CONFIG_PATH_SAVE}"

	if test "$TCLEXT_BUILD" = "static"; then
		dnl If we are doing a static build, save the linker flags for other programs to consume
		rm -f tcltls.a.linkadd
		AS_ECHO(["$TCLTLS_SSL_LIBS"]) > tcltls.a.linkadd
	fi

	dnl If we have been asked to statically link to the SSL library, specifically tell the linker to do so
	if test "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then
		dnl Don't bother doing this if we aren't actually doing the runtime linking
		if test "$TCLEXT_BUILD" != "static"; then
			dnl Split the libraries into SSL and non-SSL libraries







|
|







115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
	if test -z "$TCLTLS_SSL_CPPFLAGS"; then
		TCLTLS_SSL_CPPFLAGS="`"${PKGCONFIG}" openssl --cflags-only-I $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration])
	fi
	PKG_CONFIG_PATH="${PKG_CONFIG_PATH_SAVE}"

	if test "$TCLEXT_BUILD" = "static"; then
		dnl If we are doing a static build, save the linker flags for other programs to consume
		rm -f tcltls.${AREXT}.linkadd
		AS_ECHO(["$TCLTLS_SSL_LIBS"]) > tcltls.${AREXT}.linkadd
	fi

	dnl If we have been asked to statically link to the SSL library, specifically tell the linker to do so
	if test "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then
		dnl Don't bother doing this if we aren't actually doing the runtime linking
		if test "$TCLEXT_BUILD" != "static"; then
			dnl Split the libraries into SSL and non-SSL libraries

Changes to configure.ac.

240
241
242
243
244
245
246
247







248
249
if test "$TCLEXT_BUILD" != 'static'; then
	if test "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then
		DC_SYNC_RPATH([no])
	else
		DC_SYNC_RPATH([yes])
	fi
fi








dnl Produce output
AC_OUTPUT(Makefile pkgIndex.tcl)








>
>
>
>
>
>
>

|
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
if test "$TCLEXT_BUILD" != 'static'; then
	if test "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then
		DC_SYNC_RPATH([no])
	else
		DC_SYNC_RPATH([yes])
	fi
fi

dnl Enable a stable ABI
DC_SETUP_STABLE_API([${srcdir}/tcltls.vers], tcltls.syms)
if test "$tcltls_debug" = 'true'; then
	WEAKENSYMS=':'
	REMOVESYMS=':'
fi

dnl Produce output
AC_OUTPUT(Makefile pkgIndex.tcl tcltls.syms)

Added tcltls.syms.in.



>
1
@SYMPREFIX@Tls_Init

Added tcltls.vers.













>
>
>
>
>
>
1
2
3
4
5
6
{
	global:
		Tls_Init;
	local:
		*;
};