Firewall Wizards mailing list archives
FW-1/OPSEC : compiling lea_filter.c on solaris - anyone?
From: Carl Brewer <carl () bl echidna id au>
Date: Fri, 31 May 2002 21:08:43 +1000
After spending many hours banging my head against the FW-1 NG OPSEC
SDK, I give up :)
I'm trying to compile the example 'lea_filter.c",
but am getting fails at link-time that I cannot
seem to work out (where does the function c::c live?!)
Here's my makefile (unashamedly stolen from somewhere on the
'net ...) :
{171} : m Makefile
#
# Makefile for opsec applications
#
#
# set the executable name
#
EXE_NAME = lea_filter
EXE_NAME_DYN = lea_filter_dyn
#
# define the object (*.o) files that compose the executable
#
OBJ_FILES = lea_filter.o
#OBJ_FILES = lea_filter.o
#
# set compiler (CC) and linker (LD)
#
CC = gcc
#CC = g++
#LD = $(CC) -E
LD = $(CC)
#
# set 'PKG_DIR' to points to the OPSEC SDK package directory
#
PKG_DIR = ../../../../sdk_devel/pkg_rel
#
# set 'LIB_DIR' to point to the directory that contains the libraries
# this should be one of: release.static, release.dynamic, debug.static,
debug.dynamic
#
LIB_DIR = $(PKG_DIR)/lib/release.static
#LIB_DIR = $(PKG_DIR)/lib/debug.static
#
# Static (release or debug) libraries required for link
#
STATIC_LIBS = \
-lopsec \
-lsicauth -lsic \
-lcp_policy \
-lskey \
-lndb \
-lckpssl -lcpcert \
-lcpcryptutil -lcpprng \
-lcpbcrypt -lcpca \
-lasn1cpp \
-lcpopenssl \
-lEncode -lComUtils \
-lResolve -lDataStruct \
-lOS \
-lcpprod50 \
-lAppUtils -lEventUtils \
-lCPMIBase501 -lCPMIClient501 -lCPSrvIS -lEncode -lResolver -lcp_policy \
-lcpcert -lcpprng -llogfilter -lobjlibclient -lopsecext
#
# Dynamic (release or debug) libraries required for link
#
DYNAMIC_LIBS = \
-lopsec \
-lcpsic \
-lsicauth -lsic \
-lcp_policy \
-lskey \
-lndb \
-lckpssl -lcpcert \
-lcpcryptutil -lcpprng \
-lcpbcrypt -lcpca \
-lcpopenssl \
-lEncode -lComUtils \
-lResolve -lDataStruct \
-lOS -lEventUtils -lResolver \
-lcpprod50
#
# set system libraries and CFLAGS
#
LIBS = -lthread -lposix4 -lresolv -lsocket -lnsl -ldl -lintl -lm -lc
-lw -lkstat -lkvm -lelf
CFLAGS += -g -DDEBUG -DUNIXOS -I$(PKG_DIR)/include # # compilations and link commands ##$(ARCH) %.o: %.c # $(CC) $(CFLAGS) -c -o $@ $*.c
$(EXE_NAME): $(OBJ_FILES)
$(LD) $(CFLAGS) -L$(LIB_DIR) -o $@ $(OBJ_FILES) $(STATIC_LIBS) $(LIBS)
$(EXE_NAME_DYN):
$(OBJ_FILES)
$(LD) $(CFLAGS) -L$(LIB_DIR_DYN) -o $@ $(OBJ_FILES) $(DYNAMIC_LIBS) $(LIBS)
clean:
rm *.o $(EXE_NAME) $(EXE_NAME_DYN)
And this is what I see at compile/link time :
{180} : make
gcc -g -DDEBUG -DUNIXOS -I../../../../sdk_devel/pkg_rel/include
-L../../../../sdk_devel/pkg_rel/lib/release.static -o lea_filter
lea_filter.o -lopsec -lsicauth -lsic -lcp_policy -lskey -lndb
-lckpssl -lcpcert -lcpcryptutil -lcpprng -lcpbcrypt -lcpca -lasn1cpp
-lcpopenssl -lEncode -lComUtils -lResolve -lDataStruct -lOS
-lcpprod50 -lAppUtils -lEventUtils -lCPMIBase501 -lCPMIClient501
-lCPSrvIS -lEncode -lResolver -lcp_policy -lcpcert -lcpprng -llogfilter
-lobjlibclient -lopsecext -lthread -lposix4 -lresolv -lsocket -lnsl -ldl
-lintl -lm -lc -lw -lkstat -lkvm -lelf
Undefined
first referenced
symbol in filec::c(N6, (int0_t)) ../../../../sdk_devel/pkg_rel/lib/release.static/libckpssl.a(ckpssl_rsakeys.o) uniq_id_get_object ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o) uniq_id_iterate ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o) __1cG__CrunSregister_exit_code6FpG_v_v_ ../../../../sdk_devel/pkg_rel/lib/release.static/libsicauth.a(sslca_cache.o) uniq_id_add_object ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o) __1c2k6Fpv_v_ ../../../../sdk_devel/pkg_rel/lib/release.static/libsicauth.a(auth_sslca_obj.o) __1cG__CrunKpure_error6F_v_ ../../../../sdk_devel/pkg_rel/lib/release.static/libcpcert.a(fwPubKey.o) __1cG__CrunMex_rethrow_q6F_v_ ../../../../sdk_devel/pkg_rel/lib/release.static/libsicauth.a(auth_sslca_obj.o) uniq_id_increase_table ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o) __1cG__CrunIex_alloc6FI_pv_ ../../../../sdk_devel/pkg_rel/lib/release.static/libAppUtils.a(RTComm.o) uniq_id_del_object ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o) c::c(n6, (int0_t)) ../../../../sdk_devel/pkg_rel/lib/release.static/libsicauth.a(auth_sslca_obj.o) __1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ ../../../../sdk_devel/pkg_rel/lib/release.static/libAppUtils.a(RTComm.o) uniq_id_create_table ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o) __1c2K6Fpv_v_ ../../../../sdk_devel/pkg_rel/lib/release.static/libckpssl.a(ckpssl_rsakeys.o) uniq_id_destroy_table ../../../../sdk_devel/pkg_rel/lib/release.static/libEventUtils.a(Reactor.o)
ld: fatal: Symbol referencing errors. No output written to lea_filter collect2: ld returned 1 exit status *** Error code 1 make: Fatal error: Command failed for target `lea_filter' I know this is a pretty simple compiler/linker issue, but I'm stuffed if I can track down the "c::c" symbol in any of the static or dynamic libraries in the OPSEC kit. The other stuff I can probably (eventually) get to link in the right order (does linking order matter anymore? I'm using gcc 2.95.2). I've got all the static libraries in the link list, so I can't see why they wouldn't be showing up. I don't -think- I need to link the static and dynamic libraries? Does anyone have a working makefile to compile this (or any other of the OPSEC examples?) on Solaris or Linux? thanks Carl _______________________________________________ firewall-wizards mailing list firewall-wizards () nfr com http://list.nfr.com/mailman/listinfo/firewall-wizards
Current thread:
- FW-1/OPSEC : compiling lea_filter.c on solaris - anyone? Carl Brewer (Jun 01)
