Hi, I get this error on windows: i686-w64-mingw32-gcc -shared rawsock.o -Lbase lisp.def -Wl,--export-all-symbols -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -falign-functions=4 -D_WIN32 -g -O0 -DDEBUG_OS_ERROR -DDEBUG_SPVW -DDEBUG_BYTECODE -DSAFETY=3 -DENABLE_UNICODE -DNO_TERMCAP_NCURSES -DDYNAMIC_FFI -DDYNAMIC_MODULES -DNO_GETTEXT -I. -DDLL_EXPORT -DPIC -o C:/sds/src/clisp/current/build-mingw-g/dynmod/lib-rawsock.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker C:/sds/src/clisp/current/build-mingw-g/dynmod/lib-rawsock.dll Creating library file: C:/sds/src/clisp/current/build-mingw-g/dynmod/lib-rawsock.dll rawsock.o: In function `readv': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:148: undefined reference to `_rpl_recv' rawsock.o: In function `writev': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:156: undefined reference to `_rpl_send' rawsock.o: In function `C_subr_rawsock_htonl': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:319: undefined reference to `__imp__htonl@4' rawsock.o: In function `C_subr_rawsock_ntohl': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:335: undefined reference to `__imp__ntohl@4' rawsock.o: In function `C_subr_rawsock_htons': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:353: undefined reference to `__imp__htons@4' rawsock.o: In function `C_subr_rawsock_ntohs': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:368: undefined reference to `__imp__ntohs@4' rawsock.o: In function `C_subr_rawsock_socket': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:662: undefined reference to `_rpl_socket' rawsock.o: In function `C_subr_rawsock_socketpair': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:681: undefined reference to `_rpl_socket' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:682: undefined reference to `_rpl_socket' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:683: undefined reference to `_rpl_bind' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:685: undefined reference to `_rpl_listen' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:687: undefined reference to `_rpl_getsockname' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:688: undefined reference to `_rpl_connect' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:689: undefined reference to `_rpl_accept' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:691: undefined reference to `_rpl_close' rawsock.o: In function `C_subr_rawsock_accept': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:742: undefined reference to `_rpl_accept' rawsock.o: In function `C_subr_rawsock_bind': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:751: undefined reference to `_rpl_bind' rawsock.o: In function `C_subr_rawsock_connect': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:760: undefined reference to `_rpl_connect' rawsock.o: In function `C_subr_rawsock_getpeername': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:769: undefined reference to `_rpl_getpeername' rawsock.o: In function `C_subr_rawsock_getsockname': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:778: undefined reference to `_rpl_getsockname' rawsock.o: In function `C_subr_rawsock_sock_listen': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:787: undefined reference to `_rpl_listen' rawsock.o: In function `C_subr_rawsock_recv': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:943: undefined reference to `_rpl_recv' rawsock.o: In function `C_subr_rawsock_recvfrom': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:959: undefined reference to `_rpl_recvfrom' rawsock.o: In function `C_subr_rawsock_sock_read': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1048: undefined reference to `_rpl_recv' rawsock.o: In function `C_subr_rawsock_send': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1063: undefined reference to `_rpl_send' rawsock.o: In function `C_subr_rawsock_sendto': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1100: undefined reference to `_rpl_sendto' rawsock.o: In function `C_subr_rawsock_sock_write': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1122: undefined reference to `_rpl_send' rawsock.o: In function `C_subr_rawsock_sock_close': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1130: undefined reference to `_rpl_close' rawsock.o: In function `get_sock_opt': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1241: undefined reference to `_rpl_getsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1260: undefined reference to `_rpl_getsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1263: undefined reference to `_rpl_getsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1267: undefined reference to `_rpl_getsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1275: undefined reference to `_rpl_getsockopt' rawsock.o: In function `set_sock_opt': /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1356: undefined reference to `_rpl_setsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1375: undefined reference to `_rpl_setsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1378: undefined reference to `_rpl_setsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1382: undefined reference to `_rpl_setsockopt' /cygdrive/c/sds/src/clisp/current/modules/rawsock/rawsock.c:1393: undefined reference to `_rpl_setsockopt' collect2: ld returned 1 exit status ./clisp-link: failed in /cygdrive/c/sds/src/clisp/current/build-mingw-g/full make: *** [full] Error 1
$ nm libgnu.a | grep rpl_setsockopt 000000c8 T _rpl_setsockopt $ nm lisp.exe | grep rpl_setsockopt 0055dfbc T _rpl_setsockopt $ grep rpl_setsockopt lisp.def lisp.exe._rpl_setsockopt this is despite "lisp.exe._rpl_setsockopt" et al being present in lisp.def IMPORTS section. note that all the other (non-gnulib) symbols in lisp.exe mentioned in rawsock.o link just fine, e.g.: asciz_to_string $ nm rawsock/rawsock.o | grep asciz_to_string U __imp__asciz_to_string $ nm lisp.exe | grep asciz_to_string 0044731c T _asciz_to_string $ grep asciz_to_string lisp.def lisp.exe.asciz_to_string and there are no errors about asciz_to_string. this is because asciz_to_string is declared with __declspec(dllexport) where it is defined. there seems to be no way to add such a declaration to the rpl_setsockopt et al. if, instead, I add libgnu.a to the command line, I get libgnu.a(sendto.o): In function `rpl_sendto': /cygdrive/c/sds/src/clisp/current/build-mingw-g/gllib/../../src/gllib/sendto.c:36: undefined reference to `__imp__sendto@24' so, how do I create a dll which refers to the gnulib functionality? -- Sam Steingold (http://sds.podval.org/) on CentOS release 5.6 (Final) X 11.0.60900031 http://www.PetitionOnline.com/tap12009/ http://iris.org.il http://dhimmi.com http://www.memritv.org http://openvotingconsortium.org http://camera.org Two wrongs don't make a right, but three rights make a left.