summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2010-03-26 15:23:54 -0700
committerDan Nicholson <dbn.lists@gmail.com>2010-05-27 06:07:59 -0700
commitc3a3bec97c1e85e333c4d6f958ee50d09e6a9429 (patch)
tree6950966f2356c46164688c9065ec8b589f7b5103
parente7d90b04e507f4f1b1a2b6fc81e02a7b208d0090 (diff)
tet: Build TET API library as private shared module
Making libapi shared saves quite a bit of space since it's linked into every test program. However, parts of the API are intended to be linked statically into the program, so libapi and libtcm have been split into static and shared (_s) portions. In order to satisy undefined extern variables with shared libraries, tet_pname and tet_thistest have been added to tcc and exported. Hopefully, more code can be moved into the shared _s portion with just small stubs linked statically into the tests. Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
-rw-r--r--src/tet3/apilib/Makefile.am14
-rw-r--r--src/tet3/tcc/tcc.c5
-rw-r--r--src/tet3/tcclib/Makefile.am2
-rw-r--r--src/tet3/tcm/Makefile.am18
-rw-r--r--xts5/XI/Makefile.am1
-rw-r--r--xts5/XIproto/Makefile.am1
-rw-r--r--xts5/Xlib10/Makefile.am1
-rw-r--r--xts5/Xlib11/Makefile.am1
-rw-r--r--xts5/Xlib12/Makefile.am2
-rw-r--r--xts5/Xlib13/Makefile.am1
-rw-r--r--xts5/Xlib14/Makefile.am1
-rw-r--r--xts5/Xlib15/Makefile.am2
-rw-r--r--xts5/Xlib16/Makefile.am1
-rw-r--r--xts5/Xlib17/Makefile.am2
-rw-r--r--xts5/Xlib3/Makefile.am2
-rw-r--r--xts5/Xlib4/Makefile.am1
-rw-r--r--xts5/Xlib5/Makefile.am1
-rw-r--r--xts5/Xlib6/Makefile.am1
-rw-r--r--xts5/Xlib7/Makefile.am1
-rw-r--r--xts5/Xlib8/Makefile.am1
-rw-r--r--xts5/Xlib9/Makefile.am1
-rw-r--r--xts5/Xopen/Makefile.am1
-rw-r--r--xts5/Xproto/Makefile.am1
-rw-r--r--xts5/common.mk3
24 files changed, 54 insertions, 11 deletions
diff --git a/src/tet3/apilib/Makefile.am b/src/tet3/apilib/Makefile.am
index 8bb5fbfd..bf5179e4 100644
--- a/src/tet3/apilib/Makefile.am
+++ b/src/tet3/apilib/Makefile.am
@@ -1,9 +1,15 @@
AM_CPPFLAGS = -I../inc -I$(top_srcdir)/include
+
+# libapi_s is the shared portion of the library
+xtslibdir = $(libexecdir)/xts5
+xtslib_LTLIBRARIES = libapi_s.la
noinst_LTLIBRARIES = libapi.la
+
# If we weren't building TeT lite, this could also add inetlib, servlib
# and xtilib
-libapi_la_LIBADD = ../tcm/libtcm.la ../dtet2lib/libdtet2.la
-libapi_la_SOURCES = \
+libapi_s_la_LIBADD = ../tcm/libtcm_s.la ../dtet2lib/libdtet2.la
+libapi_s_la_LDFLAGS = -avoid-version
+libapi_s_la_SOURCES = \
dcancel.c \
dconfig.c \
dresfile.c \
@@ -19,8 +25,10 @@ libapi_la_SOURCES = \
remwait.c \
rtab.c \
sync.c \
- tciface.c \
tdiscon.c \
tet_exec.c \
tet_fork.c \
tet_spawn.c
+libapi_la_LIBADD = ../tcm/libtcm.la
+libapi_la_SOURCES = \
+ tciface.c
diff --git a/src/tet3/tcc/tcc.c b/src/tet3/tcc/tcc.c
index bd9364bb..bdd05986 100644
--- a/src/tet3/tcc/tcc.c
+++ b/src/tet3/tcc/tcc.c
@@ -71,6 +71,7 @@ MODIFICATIONS:
#include <errno.h>
#include <signal.h>
# include <unistd.h>
+#include "tet_api.h"
#include "dtmac.h"
#include "dtmsg.h"
#include "error.h"
@@ -90,6 +91,10 @@ char tcc_options[] = "IT:Va:bcef:g:i:j:l:m:n:pr:s:t:v:x:y:";
static void badusage PROTOLIST((void));
static void prversioninfo PROTOLIST((void));
+/* satisfy libapi symbol resolution */
+TET_EXPORT char *tet_pname;
+TET_EXPORT int tet_thistest;
+
/* default root directories */
#ifndef DEFAULT_TET_ROOT
#define DEFAULT_TET_ROOT "/usr/local/share"
diff --git a/src/tet3/tcclib/Makefile.am b/src/tet3/tcclib/Makefile.am
index b4c923e2..e256b99d 100644
--- a/src/tet3/tcclib/Makefile.am
+++ b/src/tet3/tcclib/Makefile.am
@@ -1,6 +1,6 @@
AM_CPPFLAGS = -I../inc -I$(top_srcdir)/include
noinst_LTLIBRARIES = libtcc.la
-libtcc_la_LIBADD = ../apilib/libapi.la
+libtcc_la_LIBADD = ../apilib/libapi.la ../apilib/libapi_s.la
libtcc_la_SOURCES = \
lockfile.c \
lsdir.c \
diff --git a/src/tet3/tcm/Makefile.am b/src/tet3/tcm/Makefile.am
index 55cd0ab3..e68f1560 100644
--- a/src/tet3/tcm/Makefile.am
+++ b/src/tet3/tcm/Makefile.am
@@ -1,10 +1,16 @@
AM_CPPFLAGS = -I../inc -I$(top_srcdir)/include
-noinst_LTLIBRARIES = libtcm.la libtcmmain.la libtcmchild.la
-libtcm_la_SOURCES = child.c \
- ckversion.c \
- dynlink.c \
- ictp.c \
- tcmfuncs.c
+
+# libtcm_s is the shared part of the library pulled into libapi_s.
+# libtcmmain and libtcmchild basically provide main() for tests or their
+# children.
+noinst_LTLIBRARIES = libtcm_s.la libtcm.la libtcmmain.la libtcmchild.la
+libtcm_s_la_SOURCES = \
+ ictp.c
+libtcm_la_SOURCES = \
+ child.c \
+ ckversion.c \
+ dynlink.c \
+ tcmfuncs.c
# When linking to either of these libraries, remember to link libapi.la
# after them
diff --git a/xts5/XI/Makefile.am b/xts5/XI/Makefile.am
index 7c6e95a1..fd26d149 100644
--- a/xts5/XI/Makefile.am
+++ b/xts5/XI/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/XIproto/Makefile.am b/xts5/XIproto/Makefile.am
index 986f8641..1bbae4ae 100644
--- a/xts5/XIproto/Makefile.am
+++ b/xts5/XIproto/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib10/Makefile.am b/xts5/Xlib10/Makefile.am
index 2812de59..3af3e98c 100644
--- a/xts5/Xlib10/Makefile.am
+++ b/xts5/Xlib10/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib11/Makefile.am b/xts5/Xlib11/Makefile.am
index 68fa1292..b0175704 100644
--- a/xts5/Xlib11/Makefile.am
+++ b/xts5/Xlib11/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib12/Makefile.am b/xts5/Xlib12/Makefile.am
index 36728e2b..c23b01cd 100644
--- a/xts5/Xlib12/Makefile.am
+++ b/xts5/Xlib12/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
@@ -52,5 +53,6 @@ XDisplayName_Test1_LDADD = $(top_builddir)/src/tet3/tcm/libtcmchild.la \
$(top_builddir)/xts5/src/xim/libximtest.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
$(XTS_LIBS)
diff --git a/xts5/Xlib13/Makefile.am b/xts5/Xlib13/Makefile.am
index 855f247a..d98e343f 100644
--- a/xts5/Xlib13/Makefile.am
+++ b/xts5/Xlib13/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib14/Makefile.am b/xts5/Xlib14/Makefile.am
index df112176..1e2f59b9 100644
--- a/xts5/Xlib14/Makefile.am
+++ b/xts5/Xlib14/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(top_builddir)/xts5/src/libXR5/libXR5.la \
$(XTS_LIBS)
diff --git a/xts5/Xlib15/Makefile.am b/xts5/Xlib15/Makefile.am
index b3d42f9a..b19605f8 100644
--- a/xts5/Xlib15/Makefile.am
+++ b/xts5/Xlib15/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
@@ -72,6 +73,7 @@ CHILD_LDADD = $(top_builddir)/src/tet3/tcm/libtcmchild.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
nobase_testprog_PROGRAMS += \
XSetWMProperties/Test1 \
diff --git a/xts5/Xlib16/Makefile.am b/xts5/Xlib16/Makefile.am
index f2026eb1..7b169959 100644
--- a/xts5/Xlib16/Makefile.am
+++ b/xts5/Xlib16/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib17/Makefile.am b/xts5/Xlib17/Makefile.am
index b0a15470..98b8dbf9 100644
--- a/xts5/Xlib17/Makefile.am
+++ b/xts5/Xlib17/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
@@ -80,6 +81,7 @@ CHILD_LDADD = $(top_builddir)/src/tet3/tcm/libtcmchild.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
nobase_testprog_PROGRAMS += \
XGetDefault/Test3 \
diff --git a/xts5/Xlib3/Makefile.am b/xts5/Xlib3/Makefile.am
index 129357cb..e0ded60d 100644
--- a/xts5/Xlib3/Makefile.am
+++ b/xts5/Xlib3/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
@@ -84,6 +85,7 @@ CHILD_LDADD = $(top_builddir)/src/tet3/tcm/libtcmchild.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
nobase_testprog_PROGRAMS += \
XDisplayString/Test1 \
diff --git a/xts5/Xlib4/Makefile.am b/xts5/Xlib4/Makefile.am
index 09095200..ac6ce487 100644
--- a/xts5/Xlib4/Makefile.am
+++ b/xts5/Xlib4/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib5/Makefile.am b/xts5/Xlib5/Makefile.am
index adbb5bc8..e1050139 100644
--- a/xts5/Xlib5/Makefile.am
+++ b/xts5/Xlib5/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib6/Makefile.am b/xts5/Xlib6/Makefile.am
index 94cf803b..bf7b1e17 100644
--- a/xts5/Xlib6/Makefile.am
+++ b/xts5/Xlib6/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib7/Makefile.am b/xts5/Xlib7/Makefile.am
index b65903c5..4a626a67 100644
--- a/xts5/Xlib7/Makefile.am
+++ b/xts5/Xlib7/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(top_builddir)/xts5/src/libXR5/libXR5.la \
$(XTS_LIBS)
diff --git a/xts5/Xlib8/Makefile.am b/xts5/Xlib8/Makefile.am
index 611335a7..ee3be354 100644
--- a/xts5/Xlib8/Makefile.am
+++ b/xts5/Xlib8/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xlib9/Makefile.am b/xts5/Xlib9/Makefile.am
index caceb04b..e8810525 100644
--- a/xts5/Xlib9/Makefile.am
+++ b/xts5/Xlib9/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xopen/Makefile.am b/xts5/Xopen/Makefile.am
index 62f8ae65..433152e2 100644
--- a/xts5/Xopen/Makefile.am
+++ b/xts5/Xopen/Makefile.am
@@ -10,6 +10,7 @@ LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/lib/libxtest.la \
$(top_builddir)/xts5/fonts/libfont.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/Xproto/Makefile.am b/xts5/Xproto/Makefile.am
index 32e68f98..1ac0f28c 100644
--- a/xts5/Xproto/Makefile.am
+++ b/xts5/Xproto/Makefile.am
@@ -8,6 +8,7 @@ AM_CFLAGS = -I$(top_srcdir)/include \
LDADD = $(top_builddir)/src/tet3/tcm/libtcmmain.la \
$(top_builddir)/xts5/src/libxts5proto.la \
$(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la \
$(XTS_LIBS)
testprogdir = $(libexecdir)/$(subdir)
diff --git a/xts5/common.mk b/xts5/common.mk
index 97052ea1..52d0fd68 100644
--- a/xts5/common.mk
+++ b/xts5/common.mk
@@ -41,7 +41,8 @@ XTESTHOST = `hostname`
PVXTESTLIB = ${XTESTLIBDIR}/libxtstpv.a
PIXLIB = ${XTESTLIBDIR}/libpvt.a
PVLIBS = ${PVXTESTLIB} $(top_builddir)/xts/fonts/libfont.la ${PIXLIB} \
- $(top_builddir)/src/tet3/apilib/libapi.la
+ $(top_builddir)/src/tet3/apilib/libapi.la \
+ $(top_builddir)/src/tet3/apilib/libapi_s.la
# SYSMATHLIB - system math library. Directive to be given to the C compiler
# to cause the maths routines to be available.