Bug 47190

Summary: mcalign-test fails to make
Product: PulseAudio Reporter: johndoe32102002
Component: build-systemAssignee: pulseaudio-bugs
Status: RESOLVED FIXED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: colin, johndoe32102002, lennart
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard: triaged
i915 platform: i915 features:
Attachments: output of command: make

Description johndoe32102002 2012-03-10 10:34:01 UTC
Created attachment 58275 [details]
output of command: make

I receive the attached error on Mint Linux (Ubuntu 11.10 x64) after running make.  The ./configure runs fine.
Comment 1 Tanu Kaskinen 2012-03-10 10:49:42 UTC
It seems that you're trying to build version 0.9.23. That's a bit old - does the current git master work any better?
Comment 2 johndoe32102002 2012-03-11 10:24:23 UTC
This is what I get when I run off the git version during the make:

make[3]: Entering directory `/home/user/pulseaudio/src'
  CCLD   close-test
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_timeval_add'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_timeval_diff'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_rtclock_now'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_get'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_timeval_load'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xstrdup'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_get_home_dir'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_get_user_name'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_iterate'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_sets'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xmemdup'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xrealloc'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_gets'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_update'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xmalloc0'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_sample_format_is_be'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_channel_map_valid'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_set'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_frame_size'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_get_binary_name'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_locale_to_utf8'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_bytes_snprint'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_get_fqdn'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xmalloc'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_utf8_to_locale'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_utf8_filter'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_msleep'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_sample_format_is_le'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xfree'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_new'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_timeval_sub'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_xstrndup'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_gettimeofday'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_from_string'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_free'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_timeval_cmp'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_get_host_name'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_ascii_filter'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_proplist_contains'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_sample_spec_valid'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_timeval_store'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_utf8_valid'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_path_get_filename'
./.libs/libpulsecommon-1.98.so: undefined reference to `pa_ascii_valid'
collect2: ld returned 1 exit status
make[3]: *** [close-test] Error 1
Comment 3 Tanu Kaskinen 2012-03-11 12:09:16 UTC
If I'm reading the error messages correctly, libpulsecommon tries to use pa_timeval_add etc, but doesn't find the code for those functions. The functions used to be included in libpulsecommon but aren't anymore, which suggests that this commit broke something: http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=24ff7196753a3273bac34e87bdcf42384f974d45

That said, git master builds just fine for me. Did you try compiling on a fresh clone, or do you perhaps have something cached from previous builds? If it's not a fresh clone, try these two commands:

git reset --hard
git clean -xdf

That should get rid of any old build stuff.

If it doesn't help, does the following command help?

git revert 24ff7196753a3273bac34e87bdcf42384f974d45
Comment 4 johndoe32102002 2012-03-11 19:59:51 UTC
echo 1.98-dev-274-g50a7bf > .version-t && mv .version-t .version
...
(same error after the recommended git commands)
...
git revert 24ff7196753a3273bac34e87bdcf42384f974d45
fatal: Your local changes would be overwritten by revert.
Please, commit your changes or stash them to proceed.
...don't know how to handle this error.

The stable version yields another error:
https://bugs.freedesktop.org/show_bug.cgi?id=46630
Comment 5 Tanu Kaskinen 2012-03-12 00:30:35 UTC
I guess you're using -Wl,--as-needed in LDFLAGS. Another user was having this same problem, and the --as-needed linker option was identified as the cause for the error.

(In reply to comment #4)
> echo 1.98-dev-274-g50a7bf > .version-t && mv .version-t .version
> ...
> (same error after the recommended git commands)
> ...
> git revert 24ff7196753a3273bac34e87bdcf42384f974d45
> fatal: Your local changes would be overwritten by revert.
> Please, commit your changes or stash them to proceed.
> ...don't know how to handle this error.

You have done some modifications to the source code. "git diff" will show what those modifications are if you're not sure. If they are important to you, commit them or back them up, and then run "git reset --hard". Now the reverting should work. If you update to the latest version, though, reverting isn't needed anymore, because it's done by this commit: http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=bbc600aae9066ece6ed7802319669e3d00bdc095

The reason why this was failing also with 0.9.23 was that this fix was not included in 0.9.23: http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/Makefile.am?id=2de2c735c937c6724c14656acf01ce90f122b903
Comment 6 Arun Raghavan 2012-03-13 21:24:26 UTC
Marking fixed as per comments. Please comment/reopen if you still have trouble with the test.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.