Am Freitag, den 15.05.2015, 12:42 +0300 schrieb Tanu Kaskinen: > On Sat, 2015-05-02 at 22:25 +0200, Paul Menzel wrote: > > 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? > > I'm not sure, but I would guess that it is a bug. My understanding is > that when configure is run, CFLAGS and LDFLAGS should be picked up from > the environment. You set the same variables to the same values also when > running make, which is redundant, but of course doing so shouldn't be > harmful either. Ah, thank you for the hint. I just wanted to be sure and passed them to Make too. > As a workaround, you could try setting the variables as make parameters > instead of as environment variables: > > make CFLAGS="..." LDFLAGS="..." Thank you. Unfortunately, that failed with the same error. $ make V=1 CFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address" make all-recursive make[1]: Entering directory '/mnt/pa-upstream' Making all in src make[2]: Entering directory '/mnt/pa-upstream/src' /bin/mkdir -p daemon modules make all-am make[3]: Entering directory '/mnt/pa-upstream/src' /bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu99 -pthread -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -O1 -g -fsanitize=address -fno-omit-frame-pointer -Wl,-z,nodelete -module -disable-static -avoid-version -Wl,--no-undefined -fsanitize=address -o module-console-kit.la -rpath /usr/local/lib/pulse-6.0/modules modules/module_console_kit_la-module-console-kit.lo libpulsecore-6.0.la libpulsecommon-6.0.la libpulse.la -ldbus-1 -lcap -lpthread -lrt -ldl -lm libtool: link: gcc -std=gnu99 -shared -fPIC -DPIC modules/.libs/module_console_kit_la-module-console-kit.o -Wl,-rpath -Wl,/mnt/pa-upstream/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': /mnt/pa-upstream/src/modules/module-console-kit.c:64: undefined reference to `__asan_option_detect_stack_use_after_return' /mnt/pa-upstream/src/modules/module-console-kit.c:64: undefined reference to `__asan_stack_malloc_2' /mnt/pa-upstream/src/modules/module-console-kit.c:73: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:83: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:103: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:106: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:110: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:110: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:113: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:114: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:119: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:119: undefined reference to `__asan_report_load4' modules/.libs/module_console_kit_la-module-console-kit.o: In function `filter_cb': /mnt/pa-upstream/src/modules/module-console-kit.c:151: undefined reference to `__asan_option_detect_stack_use_after_return' /mnt/pa-upstream/src/modules/module-console-kit.c:151: undefined reference to `__asan_stack_malloc_2' /mnt/pa-upstream/src/modules/module-console-kit.c:156: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:157: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:158: undefined reference to `__asan_handle_no_return' modules/.libs/module_console_kit_la-module-console-kit.o: In function `remove_session': /mnt/pa-upstream/src/modules/module-console-kit.c:146: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:148: undefined reference to `__asan_report_load4' modules/.libs/module_console_kit_la-module-console-kit.o: In function `free_session': /mnt/pa-upstream/src/modules/module-console-kit.c:135: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:137: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:139: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:140: undefined reference to `__asan_report_load4' modules/.libs/module_console_kit_la-module-console-kit.o: In function `module_console_kit_LTX_pa__done': /mnt/pa-upstream/src/modules/module-console-kit.c:334: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:336: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:339: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:342: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:348: undefined reference to `__asan_report_load1' /mnt/pa-upstream/src/modules/module-console-kit.c:349: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:351: undefined reference to `__asan_report_load4' modules/.libs/module_console_kit_la-module-console-kit.o: In function `module_console_kit_LTX_pa__init': /mnt/pa-upstream/src/modules/module-console-kit.c:264: undefined reference to `__asan_option_detect_stack_use_after_return' /mnt/pa-upstream/src/modules/module-console-kit.c:264: undefined reference to `__asan_stack_malloc_3' /mnt/pa-upstream/src/modules/module-console-kit.c:270: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:279: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:284: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:293: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:294: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:294: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:295: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:296: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:297: undefined reference to `__asan_report_store4' /mnt/pa-upstream/src/modules/module-console-kit.c:304: undefined reference to `__asan_report_store1' modules/.libs/module_console_kit_la-module-console-kit.o: In function `get_session_list': /mnt/pa-upstream/src/modules/module-console-kit.c:204: undefined reference to `__asan_handle_no_return' /mnt/pa-upstream/src/modules/module-console-kit.c:219: undefined reference to `__asan_report_load4' /mnt/pa-upstream/src/modules/module-console-kit.c:241: undefined reference to `__asan_handle_no_return' modules/.libs/module_console_kit_la-module-console-kit.o: In function `_GLOBAL__sub_D_00099_0_module_console_kit.c': /mnt/pa-upstream/src/modules/module-console-kit.c:355: undefined reference to `__asan_unregister_globals' modules/.libs/module_console_kit_la-module-console-kit.o: In function `_GLOBAL__sub_I_00099_1_module_console_kit.c': /mnt/pa-upstream/src/modules/module-console-kit.c:355: undefined reference to `__asan_init_v3' /mnt/pa-upstream/src/modules/module-console-kit.c:355: undefined reference to `__asan_register_globals' collect2: error: ld returned 1 exit status Makefile:5730: recipe for target 'module-console-kit.la' failed make[3]: *** [module-console-kit.la] Error 1 make[3]: Leaving directory '/mnt/pa-upstream/src' Makefile:4827: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/mnt/pa-upstream/src' Makefile:791: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/mnt/pa-upstream' Makefile:605: recipe for target 'all' failed make: *** [all] Error 2 I am using GNU Make 4.0. $ make --version GNU Make 4.0 [â?¦] Thanks, Paul -------------- 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/20150515/4e256db2/attachment.sig>