Hi,
And jlibtool is built without debugging symbols. <sigh>
Ensure that scripts/libtool.mk has "-g" for the jlibtool build. And also in Make.inc, just for laughs. Then, make clean && rebuild.
And ensure you've set LIBTOOL=JLIBTOOL in Make.inc.
hows this? # valgrind build/make/jlibtool --silent --mode=link gcc -o build/lib/libfreeradius-radius.la -rpath /usr/local/src/freeradius-server/build/lib/.libs -rdynamic build/objs/src/lib/dict.lo build/objs/src/lib/filters.lo build/objs/src/lib/hash.lo build/objs/src/lib/hmac.lo build/objs/src/lib/hmacsha1.lo build/objs/src/lib/isaac.lo build/objs/src/lib/log.lo build/objs/src/lib/misc.lo build/objs/src/lib/missing.lo build/objs/src/lib/md4.lo build/objs/src/lib/md5.lo build/objs/src/lib/print.lo build/objs/src/lib/radius.lo build/objs/src/lib/rbtree.lo build/objs/src/lib/sha1.lo build/objs/src/lib/snprintf.lo build/objs/src/lib/strlcat.lo build/objs/src/lib/strlcpy.lo build/objs/src/lib/token.lo build/objs/src/lib/udpfromto.lo build/objs/src/lib/valuepair.lo build/objs/src/lib/fifo.lo build/objs/src/lib/packet.lo build/objs/src/lib/event.lo build/objs/src/lib/getaddrinfo.lo build/objs/src/lib/vqp.lo build/objs/src/lib/heap.lo build/objs/src/lib/dhcp.lo build/objs/src/lib/tcp.lo build/objs/src/lib/base64.lo -lnsl -lresolv -ldl -lpthread ==12088== Memcheck, a memory error detector ==12088== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==12088== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info ==12088== Command: build/make/jlibtool --silent --mode=link gcc -o build/lib/libfreeradius-radius.la -rpath /usr/local/src/freeradius-server/build/lib/.libs -rdynamic build/objs/src/lib/dict.lo build/objs/src/lib/filters.lo build/objs/src/lib/hash.lo build/objs/src/lib/hmac.lo build/objs/src/lib/hmacsha1.lo build/objs/src/lib/isaac.lo build/objs/src/lib/log.lo build/objs/src/lib/misc.lo build/objs/src/lib/missing.lo build/objs/src/lib/md4.lo build/objs/src/lib/md5.lo build/objs/src/lib/print.lo build/objs/src/lib/radius.lo build/objs/src/lib/rbtree.lo build/objs/src/lib/sha1.lo build/objs/src/lib/snprintf.lo build/objs/src/lib/strlcat.lo build/objs/src/lib/strlcpy.lo build/objs/src/lib/token.lo build/objs/src/lib/udpfromto.lo build/objs/src/lib/valuepair.lo build/objs/src/lib/fifo.lo build/objs/src/lib/packet.lo build/objs/src/lib/event.lo build/objs/src/lib/getaddrinfo.lo build/objs/src/lib/vqp.lo build/objs/src/lib/heap.lo build/objs/src/lib/dhcp.lo build/objs/src/lib/tcp.lo build/objs/src/lib/base64.lo -lnsl -lresolv -ldl -lpthread ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284AA: strcat (mc_replace_strmem.c:176) ==12088== by 0x4022B6: gen_library_name (jlibtool.c:952) ==12088== by 0x40337B: parse_output_file_name (jlibtool.c:1607) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284AA: strcat (mc_replace_strmem.c:176) ==12088== by 0x4022B6: gen_library_name (jlibtool.c:952) ==12088== by 0x403397: parse_output_file_name (jlibtool.c:1608) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284AA: strcat (mc_replace_strmem.c:176) ==12088== by 0x4022A1: gen_library_name (jlibtool.c:949) ==12088== by 0x4033B3: parse_output_file_name (jlibtool.c:1609) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284AA: strcat (mc_replace_strmem.c:176) ==12088== by 0x4022B6: gen_library_name (jlibtool.c:952) ==12088== by 0x402371: gen_install_name (jlibtool.c:983) ==12088== by 0x4033CF: parse_output_file_name (jlibtool.c:1610) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Syscall param stat(file_name) points to uninitialised byte(s) ==12088== at 0x4F07735: _xstat (in /lib64/libc-2.12.so) ==12088== by 0x40238B: gen_install_name (jlibtool.c:986) ==12088== by 0x4033CF: parse_output_file_name (jlibtool.c:1610) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== Address 0x52086c6 is 38 bytes inside a block of size 44 alloc'd ==12088== at 0x4C26FDE: malloc (vg_replace_malloc.c:236) ==12088== by 0x402254: gen_library_name (jlibtool.c:942) ==12088== by 0x402371: gen_install_name (jlibtool.c:983) ==12088== by 0x4033CF: parse_output_file_name (jlibtool.c:1610) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284AA: strcat (mc_replace_strmem.c:176) ==12088== by 0x4022B6: gen_library_name (jlibtool.c:952) ==12088== by 0x402371: gen_install_name (jlibtool.c:983) ==12088== by 0x4033EB: parse_output_file_name (jlibtool.c:1611) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Syscall param stat(file_name) points to uninitialised byte(s) ==12088== at 0x4F07735: _xstat (in /lib64/libc-2.12.so) ==12088== by 0x40238B: gen_install_name (jlibtool.c:986) ==12088== by 0x4033EB: parse_output_file_name (jlibtool.c:1611) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== Address 0x5208737 is 39 bytes inside a block of size 44 alloc'd ==12088== at 0x4C26FDE: malloc (vg_replace_malloc.c:236) ==12088== by 0x402254: gen_library_name (jlibtool.c:942) ==12088== by 0x402371: gen_install_name (jlibtool.c:983) ==12088== by 0x4033EB: parse_output_file_name (jlibtool.c:1611) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284AA: strcat (mc_replace_strmem.c:176) ==12088== by 0x4022A1: gen_library_name (jlibtool.c:949) ==12088== by 0x402371: gen_install_name (jlibtool.c:983) ==12088== by 0x403407: parse_output_file_name (jlibtool.c:1612) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Syscall param stat(file_name) points to uninitialised byte(s) ==12088== at 0x4F07735: _xstat (in /lib64/libc-2.12.so) ==12088== by 0x40238B: gen_install_name (jlibtool.c:986) ==12088== by 0x403407: parse_output_file_name (jlibtool.c:1612) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== Address 0x520879d is 29 bytes inside a block of size 44 alloc'd ==12088== at 0x4C26FDE: malloc (vg_replace_malloc.c:236) ==12088== by 0x402254: gen_library_name (jlibtool.c:942) ==12088== by 0x402371: gen_install_name (jlibtool.c:983) ==12088== by 0x403407: parse_output_file_name (jlibtool.c:1612) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C287E8: strlen (mc_replace_strmem.c:282) ==12088== by 0x403434: parse_output_file_name (jlibtool.c:1617) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C28877: strcpy (mc_replace_strmem.c:311) ==12088== by 0x40345E: parse_output_file_name (jlibtool.c:1619) ==12088== by 0x403D63: parse_args (jlibtool.c:1861) ==12088== by 0x404CDB: main (jlibtool.c:2424) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C287E8: strlen (mc_replace_strmem.c:282) ==12088== by 0x401387: flatten_count_chars (jlibtool.c:450) ==12088== by 0x401674: run_command (jlibtool.c:560) ==12088== by 0x4046CD: run_mode (jlibtool.c:2245) ==12088== by 0x404D0D: main (jlibtool.c:2431) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284D7: strcat (mc_replace_strmem.c:176) ==12088== by 0x401415: flatten_count_chars (jlibtool.c:462) ==12088== by 0x401674: run_command (jlibtool.c:560) ==12088== by 0x4046CD: run_mode (jlibtool.c:2245) ==12088== by 0x404D0D: main (jlibtool.c:2431) ==12088== ==12090== Syscall param execve(argv[i]) points to uninitialised byte(s) ==12090== at 0x4ED9727: execve (in /lib64/libc-2.12.so) ==12090== by 0x4ED9FB0: execvpe (in /lib64/libc-2.12.so) ==12090== by 0x4015A9: external_spawn (jlibtool.c:530) ==12090== by 0x404718: run_mode (jlibtool.c:2254) ==12090== by 0x404D0D: main (jlibtool.c:2431) ==12090== Address 0x5208576 is 38 bytes inside a block of size 44 alloc'd ==12090== at 0x4C26FDE: malloc (vg_replace_malloc.c:236) ==12090== by 0x402254: gen_library_name (jlibtool.c:942) ==12090== by 0x40337B: parse_output_file_name (jlibtool.c:1607) ==12090== by 0x403D63: parse_args (jlibtool.c:1861) ==12090== by 0x404CDB: main (jlibtool.c:2424) ==12090== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C287E8: strlen (mc_replace_strmem.c:282) ==12088== by 0x401387: flatten_count_chars (jlibtool.c:450) ==12088== by 0x401674: run_command (jlibtool.c:560) ==12088== by 0x40480A: run_mode (jlibtool.c:2280) ==12088== by 0x404D0D: main (jlibtool.c:2431) ==12088== ==12088== Conditional jump or move depends on uninitialised value(s) ==12088== at 0x4C284D7: strcat (mc_replace_strmem.c:176) ==12088== by 0x401415: flatten_count_chars (jlibtool.c:462) ==12088== by 0x401674: run_command (jlibtool.c:560) ==12088== by 0x40480A: run_mode (jlibtool.c:2280) ==12088== by 0x404D0D: main (jlibtool.c:2431) ==12088== ==12088== ==12088== HEAP SUMMARY: ==12088== in use at exit: 400,197 bytes in 62 blocks ==12088== total heap usage: 64 allocs, 2 frees, 400,804 bytes allocated ==12088== ==12088== LEAK SUMMARY: ==12088== definitely lost: 71,365 bytes in 20 blocks ==12088== indirectly lost: 328,832 bytes in 42 blocks ==12088== possibly lost: 0 bytes in 0 blocks ==12088== still reachable: 0 bytes in 0 blocks ==12088== suppressed: 0 bytes in 0 blocks ==12088== Rerun with --leak-check=full to see details of leaked memory ==12088== ==12088== For counts of detected and suppressed errors, rerun with: -v ==12088== Use --track-origins=yes to see where uninitialised values come from ==12088== ERROR SUMMARY: 15 errors from 15 contexts (suppressed: 6 from 6) alan