[pulseaudio-discuss] `LDFLAGS` are not passed down preventing usage of AddressSanitizer (ASan)

Paul Menzel paulepanter at users.sourceforge.net
Sat May 2 13:25:21 PDT 2015


Dear PulseAudio folks,


my goal is to build PulseAudio with the “fast memory error detector”
AddressSanitizer (ASan) [1].

        $ CFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address" ./autogen.sh
        $ CFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address" make V=1
        […]
        $ cd src/
        $ $ gcc -std=gnu99 -shared  -fPIC -DPIC  modules/.libs/module_console_kit_la-module-console-kit.o   -Wl,-rpath -Wl,/src/pulseaudio/src/.libs -Wl,-rpath -Wl,/usr/local/lib/pulseaudio ./.libs/libpulsecore-6.0.so ./.libs/libpulsecommon-6.0.so ./.libs/libpulse.so -ldbus-1 -lcap -lpthread -lrt -ldl -lm  -pthread -O1 -Wl,-z -Wl,nodelete -Wl,--no-undefined   -pthread -Wl,-soname -Wl,module-console-kit.so -o .libs/module-console-kit.so
        modules/.libs/module_console_kit_la-module-console-kit.o: In function `add_session':
        /src/pulseaudio/src/modules/module-console-kit.c:64: undefined reference to `__asan_option_detect_stack_use_after_return'
        /src/pulseaudio/src/modules/module-console-kit.c:64: undefined reference to `__asan_stack_malloc_2'
        /src/pulseaudio/src/modules/module-console-kit.c:73: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:83: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:103: undefined reference to `__asan_report_store4'
        /src/pulseaudio/src/modules/module-console-kit.c:106: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:110: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:110: undefined reference to `__asan_report_store4'
        /src/pulseaudio/src/modules/module-console-kit.c:113: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:114: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:119: undefined reference to `__asan_report_load4'
        /src/pulseaudio/src/modules/module-console-kit.c:119: undefined reference to `__asan_report_load4'

So it looks like `LDFLAGS` has gone missing here. Adding
`-fsanitize=address` manually results in successful linking.

        $ gcc -std=gnu99 -shared  -fsanitize=address -fPIC -DPIC  modules/.libs/module_console_kit_la-module-console-kit.o   -Wl,-rpath -Wl,/src/pulseaudio/src/.libs -Wl,-rpath -Wl,/usr/local/lib/pulseaudio ./.libs/libpulsecore-6.0.so ./.libs/libpulsecommon-6.0.so ./.libs/libpulse.so -ldbus-1 -lcap -lpthread -lrt -ldl -lm  -pthread -O1 -Wl,-z -Wl,nodelete -Wl,--no-undefined   -pthread -Wl,-soname -Wl,module-console-kit.so -o .libs/module-console-kit.so
        $ ls .libs/module-console-kit.so 
        .libs/module-console-kit.so

Am I using the build system incorrectly or is this a bug?


Thanks,

Paul


[1] https://code.google.com/p/address-sanitizer/
-------------- next part --------------
_______________________________________________
SeaBIOS mailing list
SeaBIOS at seabios.org
http://www.seabios.org/mailman/listinfo/seabios
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150502/80acdf3f/attachment.sig>


More information about the pulseaudio-discuss mailing list