1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
$NetBSD: patch-ac,v 1.7 2004/03/11 01:27:05 minskim Exp $
--- tcl.m4.orig 2004-03-01 18:04:48.000000000 -0600
+++ tcl.m4
@@ -796,6 +796,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
# Step 3: set configuration options based on system name and version.
do64bit_ok=no
+ RPATH_FLAG=""
EXTRA_CFLAGS=""
TCL_EXPORT_FILE_SUFFIX=""
UNSHARED_LIB_SUFFIX=""
@@ -1066,6 +1067,9 @@ dnl AC_CHECK_TOOL(AR, ar)
LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
EXTRA_CFLAGS=""
LDFLAGS=""
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
+ TCL_LIB_VERSIONS_OK=nodots
;;
IRIX-6.*)
SHLIB_CFLAGS=""
@@ -1091,6 +1095,9 @@ dnl AC_CHECK_TOOL(AR, ar)
esac
LDFLAGS="-n32"
fi
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
+ TCL_LIB_VERSIONS_OK=nodots
;;
IRIX64-6.*)
SHLIB_CFLAGS=""
@@ -1115,6 +1122,9 @@ dnl AC_CHECK_TOOL(AR, ar)
LDFLAGS="-64"
fi
fi
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
+ TCL_LIB_VERSIONS_OK=nodots
;;
Linux*)
SHLIB_CFLAGS="-fPIC"
@@ -1161,6 +1171,9 @@ dnl AC_CHECK_TOOL(AR, ar)
# XIM peeking works under XFree86.
AC_DEFINE(PEEK_XCLOSEIM)
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
+ TCL_LIB_VERSIONS_OK=nodots
;;
GNU*)
SHLIB_CFLAGS="-fPIC"
@@ -1214,7 +1227,6 @@ dnl AC_CHECK_TOOL(AR, ar)
AC_CHECK_HEADER(dlfcn.h, [
# NetBSD/SPARC needs -fPIC, -fpic will not do.
SHLIB_CFLAGS="-fPIC"
- SHLIB_LD="ld -Bshareable -x"
SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
@@ -1227,11 +1239,19 @@ dnl AC_CHECK_TOOL(AR, ar)
#ifdef __ELF__
yes
#endif
- ],
+ ], [
AC_MSG_RESULT(yes)
- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so',
+ SHLIB_LD='${TCL_CC} -shared -Wl,-x'
+ RPATH_FLAG='-Wl,-R'
+ LD_SEARCH_FLAGS='-Wl,-R${LIB_RUNTIME_DIR}'
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
+ ], [
AC_MSG_RESULT(no)
+ SHLIB_LD="ld -Bshareable -x"
+ RPATH_FLAG='-R'
+ LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+ ]
)
], [
SHLIB_CFLAGS=""
@@ -1526,6 +1546,9 @@ dnl AC_CHECK_TOOL(AR, ar)
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
fi
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ TCL_LIB_VERSIONS_OK=nodots
;;
ULTRIX-4.*)
SHLIB_CFLAGS="-G 0"
@@ -1710,8 +1733,8 @@ dnl AC_CHECK_TOOL(AR, ar)
if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
LIB_SUFFIX=${SHARED_LIB_SUFFIX}
- MAKE_LIB='${SHLIB_LD} -o [$]@ ${SHLIB_LD_FLAGS} ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
- INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ MAKE_LIB='${SHLIB_LD} -o ${@:C/\.so.*/.la/} ${SHLIB_LD_FLAGS} ${OBJS:.o=.lo} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} -version-info 1:0'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE:C/\.so.*/.la/) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
else
LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
@@ -2056,7 +2079,11 @@ AC_DEFUN(SC_PATH_X, [
for i in $dirs ; do
if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then
AC_MSG_RESULT($i)
- XLIBSW="-L$i -lX11"
+ if test "${RPATH_FLAG}" != ""; then
+ XLIBSW="-L$i ${RPATH_FLAG}$i -lX11"
+ else
+ XLIBSW="-L$i -lX11"
+ fi
x_libraries="$i"
break
fi
@@ -2065,7 +2092,11 @@ AC_DEFUN(SC_PATH_X, [
if test "$x_libraries" = ""; then
XLIBSW=-lX11
else
- XLIBSW="-L$x_libraries -lX11"
+ if test "${RPATH_FLAG}" != ""; then
+ XLIBSW="-L$x_libraries ${RPATH_FLAG}$x_libraries -lX11"
+ else
+ XLIBSW="-L$x_libraries -lX11"
+ fi
fi
fi
if test "$XLIBSW" = nope ; then
|