problems building server following mini_http example

Tiago Jorge tjpj at lasige.di.fc.ul.pt
Mon Mar 7 12:26:30 CET 2005


Hello...
As i said in earlier emails, i'm building a L4 server that needs network 
support. For that purpose, i'm trying to use the libraries from the 
FLIPS package, using as guideline the mini_http server. i've build my 
own package and costumized the Makefile to suit my needs. I've changed 
the mode to l4env_freebsd because i'm using C++ + STL, and i need the 
headers and the libstdc++.a. I've changed also the needed extra 
libraries as in the mini_http example. So the Makefile looks like this:

######################################

PKGDIR          ?= ../..
L4DIR           ?= $(PKGDIR)/../..

TARGET          = $(PKGNAME)
# the default relocation address. This may be superseded by a STATIC file.
DEFAULT_RELOC   = 0x01d00000

# list your .c files here
SRC_CC          = FailureDetector.cc

#Mode
MODE            = l4env_freebsd

#systems
SYSTEMS         = x86-l4v2

# if your server implements the server side of an idl defined in an 
idl-file
# of your package, list the idl file name(s) here (no path needed)
#SERVERIDL      =

CXX_FLAGS       = -nostdinc++ \
                 -I$(L4DIR)/include/g++-3 \
                 -I$(L4DIR)/include/drops

# list additional library paths and libraries here
LIBS            = -lstdc++ $(GCCLIB) -ldiet_be_socket_io -ll4vfs_net_io 
-ldiet_be_select -ll4vfs_select -ll4vfs_select_listener-server

include $(L4DIR)/mk/prog.mk

#####################################

the result when i build my program is the following error:

 ... Compiling FailureDetector.o
LD_PRELOAD=/home/tiago/l4/tool/gendep/libgendep.so 
GENDEP_TARGET=FailureDetector.o GENDEP_BINARY=cc1plus  g++ -c     
-DRAM_BASE=0x0    -DSYSTEM_x86_586_l4v2 -DARCH_x86 -DCPUTYPE_586 
-DL4API_l4v2  -I../../../idl/OBJ-x86-l4v2 
-I../../../../../include/x86/l4v2 -I/home/tiago/drops/include/x86/l4v2 
-I../../../../../include/l4v2 -I/home/tiago/drops/include/l4v2 
-I../../../../../include/x86 -I/home/tiago/drops/include/x86 
-I../../../../../include -I/home/tiago/drops/include -nostdinc -DOSKIT 
-I../../../../../../oskit10/freebsd/libc/include 
-I../../../../../../oskit10/freebsd/3.x/src/include 
-I../../../../../../oskit10/freebsd/3.x/src/sys 
-I../../../../../../oskit10 -I../../../../../include/c++/3.3 
-I../../../../../include/c++/3.3/drops 
-I/home/tiago/drops/include/oskit10 
-I/home/tiago/drops/include/oskit10/oskit/freebsd 
-I/home/tiago/drops/include/c++/3.3 
-I/home/tiago/drops/include/c++/3.3/drops 
-I/usr/lib/gcc-lib/i486-linux/3.3.4/include -gstabs+     -g -O2 
-fno-strict-aliasing -march=i586 -Wall 
/home/tiago/l4/pkg/failuredetector/server/src/FailureDetector.cc -o 
FailureDetector.o
 ==> Linking failuredetector
LD_PRELOAD=/home/tiago/l4/tool/gendep/libgendep.so 
GENDEP_TARGET=failuredetector GENDEP_BINARY=ld  gcc -o failuredetector 
../../../../../lib/x86_586/crt0.o FailureDetector.o -Ttext=0x01d00000  
-L../../../../../lib/x86_586/l4v2 -L/home/tiago/drops/lib/x86_586/l4v2 
-L../../../../../lib/x86_586 -L/home/tiago/drops/lib/x86_586 
-L../../../../../lib -L/home/tiago/drops/lib 
-L../../../../../../oskit10/lib -L../../../../../lib/c++/3.3 
-L/home/tiago/drops/lib/oskit10 -L/home/tiago/drops/lib/c++/3.3 
-T../../../../../lib/x86_586/main_stat.ld -lstdc++ 
/usr/lib/gcc-lib/i486-linux/3.3.4/libgcc.a -ldiet_be_socket_io 
-ll4vfs_net_io -ldiet_be_select -ll4vfs_select 
-ll4vfs_select_listener-server   -static 
-loskit10_support_l4env_freebsd.o -ll4env -ll4rm -ldm_generic -ldm_mem 
-lthread -lsemaphore -lnames -ll4util -lrmgr -ll4env -lomega0 
-llogserver -ll4env_err -ll4rm -ldm_generic -ldm_mem -lthread -lslab 
-ll4sys -nostdlib -Wl,--nostdlib -loskit_freebsd_c -loskit_freebsd_net 
-loskit_startup -loskit_clientos -loskit_bootp -loskit_linux_fs 
-loskit_fsnamespace -loskit_diskpart -loskit_linux_dev 
-loskit10_support_l4env_freebsd_dev -loskit_kern -loskit_lmm -loskit_amm 
-loskit_freebsd_c -loskit_com /usr/lib/gcc-lib/i486-linux/3.3.4/libgcc.a 
/usr/lib/gcc-lib/i486-linux/3.3.4/libgcc_eh.a -loskit_freebsd_c 
-Ttext=0x01d00000 -Wl,-gc-sections
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.get_socket_server_thread+0x8b): 
In function `setsockopt':
/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:687: 
undefined reference to `l4vfs_init_connection'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.socket+0xc):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:673: 
undefined reference to `ft_get_next_free_entry'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.socket+0xa3):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:679: 
undefined reference to `ft_fill_entry'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.bind+0x20):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:684: 
undefined reference to `ft_is_open'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.bind+0x33):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:690: 
undefined reference to `ft_get_entry'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.recvfrom+0x3a):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:690: 
undefined reference to `ft_is_open'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.recvfrom+0x4d):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:692: 
undefined reference to `ft_get_entry'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.sendto+0x30):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:690: 
undefined reference to `ft_is_open'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.sendto+0x43):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:692: 
undefined reference to `ft_get_entry'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.setsockopt+0x24):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:684: 
undefined reference to `ft_is_open'
../../../../../lib/x86_586/l4v2/libdiet_be_socket_io.a(socket.o)(.text.setsockopt+0x37):/home/tiago/l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c:690: 
undefined reference to `ft_get_entry'
../../../../../lib/x86_586/l4v2/libl4env.a(startup.o)(.text+0x19): In 
function `__startup_main':
/home/tiago/l4/pkg/l4env/lib/src/startup.c:62: undefined reference to 
`main'
../../../../../../oskit10/lib/liboskit_kern.a(base_console_init.o)(.text+0x31c): 
In function `base_console_init':
/home/tiago/oskit10/kern/../kern/x86/pc/base_console_init.c:220: 
undefined reference to `main'
collect2: ld returned 1 exit status
make[1]: ** [failuredetector] Erro 1
make[1]: Saindo do diretório 
`/home/tiago/l4/pkg/failuredetector/server/src/OBJ-x86_586-l4v2'
make: ** [OBJ-x86_586-l4v2] Erro 2

But when i build the mini_http example it gives no errors and links some 
extra libraries that i don't see them defined  in any file...

My questions are:

what am i doing wrong :) ?
what extra libraries should i link and how?

by the way... following my last email, to how to add extra NIC drivers 
to FLIPS, it is as simple as said and worked. Just add your drivers the 
referenced Makefile line and extra modules needed by the driver, in my 
case crc32 and mii.

thanks in advance

Tiago Jorge






More information about the l4-hackers mailing list