Hi, I'm developing an auth module based on eap outside of the FreeRADIUS environment and I'm having some problems linking freeRadius functions to my module ! this is the output of gcc : gcc -g -o rlm_eap_xxx-1.1.3.so -DNDEBUG -Wall -I/tmp/freeradius-1.1.3/src/include -I/tmp/freeradius-1.1.3/src/modules/rlm_eap -I/tmp/freeradius-1.1.3/src/modules/rlm_eap/libeap -I/tmp/freeradius-1.1.3/src/lib -I/home/ns/rlm_eap_xxx -I/usr/local/include -I/usr/local/lib -I/usr/include -L/tmp/freeradius-1.1.3/src/lib -L/usr/local/lib -lgcrypt -L/usr/local/lib -lgpg-error rlm_eap_xxx.o eap_xxx.o crypto_xxx.o /usr/lib/crt1.o(.text+0x18): In function `_start': ../sysdeps/i386/elf/start.S:115: undefined reference to `main' rlm_eap_xxx.o(.text+0x9): In function `xxx_initiate': /home/ns/rlm_eap_xxx/rlm_eap_xxx.c:55: undefined reference to `debug_flag' rlm_eap_xxx.o(.text+0x1a):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:55: undefined reference to `log_debug' (THIS LINE IS CALLING DEBUG2(....)) rlm_eap_xxx.o(.text+0x6f):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:72: undefined reference to `radlog' ( this line calls radlog(L_ERR, "rlm_eap_xxx: out of memory");) rlm_eap_xxx.o(.text+0xc2):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:88: undefined reference to `radlog' ( this line calls radlog(...)) rlm_eap_xxx.o(.text+0x14e):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:114: undefined reference to `debug_flag' (THIS LINE IS CALLING DEBUG2(....)) rlm_eap_xxx.o(.text+0x15f):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:114: undefined reference to `log_debug' rlm_eap_xxx.o(.text+0x180): In function `xxx_authenticate': /home/ns/rlm_eap_xxx/rlm_eap_xxx.c:124: undefined reference to `debug_flag' rlm_eap_xxx.o(.text+0x191):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:124: undefined reference to `log_debug' DEBUG2() rlm_eap_xxx.o(.text+0x1bd):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:146: undefined reference to `radlog' radlog() rlm_eap_xxx.o(.text+0x29c):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:168: undefined reference to `radlog' rlm_eap_xxx.o(.text+0x2df):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:173: undefined reference to `radlog' rlm_eap_xxx.o(.text+0x2fc):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:180: undefined reference to `debug_flag' rlm_eap_xxx.o(.text+0x30d):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:180: undefined reference to `log_debug' rlm_eap_xxx.o(.text+0x329):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:182: undefined reference to `pairmake' THIS LINE CALLS pairmake() rlm_eap_xxx.o(.text+0x346):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:184: undefined reference to `radlog' rlm_eap_xxx.o(.text+0x36d):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:188: undefined reference to `pairadd' rlm_eap_xxx.o(.text+0x386):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:194: undefined reference to `pairfind' rlm_eap_xxx.o(.text+0x3a3):/home/ns/rlm_eap_xxx/rlm_eap_xxx.c:206: undefined reference to `radlog' eap_xxx.o(.text+0x2b): In function `eapxxx_alloc': /home/ns/rlm_eap_xxx/eap_xxx.c:71: undefined reference to `radlog' eap_xxx.o(.text+0x17b): In function `eapxxx_extract': /home/ns/rlm_eap_xxx/eap_xxx.c:133: undefined reference to `radlog' eap_xxx.o(.text+0x24c):/home/ns/rlm_eap_xxx/eap_xxx.c:200: undefined reference to `radlog' eap_xxx.o(.text+0x36a): In function `eapxxx_compose': /home/ns/rlm_eap_xxx/eap_xxx.c:289: undefined reference to `radlog' eap_xxx.o(.text+0x4a9):/home/ns/rlm_eap_xxx/eap_xxx.c:340: more undefined references to `radlog' follow eap_xxx.o(.text+0x4d9): In function `xxx_msg1': /home/ns/rlm_eap_xxx/eap_xxx.c:349: undefined reference to `lrad_rand' eap_xxx.o(.text+0x4fe):/home/ns/rlm_eap_xxx/eap_xxx.c:351: undefined reference to `radlog' eap_xxx.o(.text+0x530):/home/ns/rlm_eap_xxx/eap_xxx.c:355: undefined reference to `radlog' eap_xxx.o(.text+0x626): In function `xxx_msg3': /home/ns/rlm_eap_xxx/eap_xxx.c:396: undefined reference to `radlog' eap_xxx.o(.text+0x656):/home/ns/rlm_eap_xxx/eap_xxx.c:402: undefined reference to `radlog' collect2: ld returned 1 exit status make: *** [rlm_eap_xxx-1.1.3.so] Error 1 in rlm_eap_xxx.c I'm including : #include <radiusd.h> , suggestions ? thank you ! kky