Bug 3529

Summary: alsa-lib 1.0.24.1 build fails with daily snapshot (2011-03-29)
Product: buildroot Reporter: Michael J. Hammel <mjhammel>
Component: OtherAssignee: unassigned
Status: RESOLVED WONTFIX    
Severity: normal CC: buildroot
Priority: P5    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:
Attachments: package/multimedia/alsa-lib/alsa-lib-1.0.24.1-uclibc-missing-versionsort.patch

Description Michael J. Hammel 2011-03-30 04:43:58 UTC
make[4]: Entering directory `/home/mjhammel/src/ximba/bb/bld/buildroot-snapshot/output/build/alsa-lib-1.0.24.1/src/ucm'
  CC     utils.lo
  CC     parser.lo
  CC     main.lo
parser.c: In function 'uc_mgr_scan_master_configs':
parser.c:1138: error: 'versionsort' undeclared (first use in this function)
parser.c:1138: error: (Each undeclared identifier is reported only once
parser.c:1138: error: for each function it appears in.)

I'm on Fedora 13, using an external Crosstool-NG 1.10.0 toolchain.

Tomorrow I'll try back-patching to 1.0.23 and see if that works.
Comment 1 Peter Korsgaard 2011-03-30 07:02:08 UTC
Odd, it builds here with an internal uClibc toolchain (default config). What C library are you using? It doesn't even seem like you can disable versionsort support in uClibc:

./host/usr/bin/arm-linux-nm -D staging/lib/libuClibc-0.9.31.so|grep versionsort
0000c4dc T versionsort
Comment 2 Michael J. Hammel 2011-03-30 15:06:46 UTC
I'm using gcc 4.4.5 in this test.  I was using gcc 4.4.1 with Crosstool-NG 1.8.2 but that had a different problem that I posted about on the mailing list.  Since I wasn't up to latest revs of either Buildroot or Crosstool-NG I decided to try that first and ran into this.

Anyway, if you'd like me to try with an earlier version of gcc I can.
Comment 3 Michael J. Hammel 2011-03-30 21:09:53 UTC
Ugh.  I'm such a dummy.  You asked for C-library, not compiler.  I'm using uClibc 0.9.30.2.  Sorry 'bout that.
Comment 4 Peter Korsgaard 2011-03-30 21:19:27 UTC
Ahh, that explains it. versionsort() was only added to uClibc back in Feb 2009, and 0.9.30 is from 2008. Why are you using such an ancient uClibc version (together with a quite recent gcc even)? uClibc 0.9.32 is very close to release by now.
Comment 5 Michael J. Hammel 2011-03-30 22:39:35 UTC
I think that may have been the latest available in Crosstool-NG 1.8.2 which was what I was using before testing the latest release (1.10.0).  Looks like 1.10.0 only has uClibc 0.9.30.[1-3].  0.9.31 is marked EXPERIMENTAL.  There is also a "latest snapshot" option I can try.

I'll give those a try and see if things fare any better.
Comment 6 Kelvin Cheung 2011-04-26 01:44:47 UTC
(In reply to comment #0)
> make[4]: Entering directory
> `/home/mjhammel/src/ximba/bb/bld/buildroot-snapshot/output/build/alsa-lib-1.0.24.1/src/ucm'
>   CC     utils.lo
>   CC     parser.lo
>   CC     main.lo
> parser.c: In function 'uc_mgr_scan_master_configs':
> parser.c:1138: error: 'versionsort' undeclared (first use in this function)
> parser.c:1138: error: (Each undeclared identifier is reported only once
> parser.c:1138: error: for each function it appears in.)
> 
> I'm on Fedora 13, using an external Crosstool-NG 1.10.0 toolchain.
> 
> Tomorrow I'll try back-patching to 1.0.23 and see if that works.

The same problem also happened to me.
And when I try uClibc 0.9.31 in crosstool-ng 1.10.1, I got this error below:

[ALL  ]    /opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/tools/bin/install -c -m 644 ./libiberty.a /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/`/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/xgcc -B/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/bin/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/ -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/include -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/sys-include -g -Os   -print-multi-os-directory`/./libiberty.an
[ALL  ]    ( cd /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/`/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/xgcc -B/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/bin/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/ -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/include -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/sys-include -g -Os   -print-multi-os-directory` ; chmod 644 ./libiberty.an; /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/bin/ranlib ./libiberty.an )
[ALL  ]    mv -f /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/`/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/xgcc -B/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/bin/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/ -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/include -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/sys-include -g -Os   -print-multi-os-directory`/./libiberty.an /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/`/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/xgcc -B/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/./gcc/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/bin/ -B/opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/lib/ -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/include -isystem /opt/buildroot_real6410/output_fs2410/host/usr/arm-unknown-linux-uclibcgnueabi/sys-include -g -Os   -print-multi-os-directory`/./libiberty.a
[ALL  ]    make[7]: Entering directory `/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/arm-unknown-linux-uclibcgnueabi/libiberty/testsuite'
[ALL  ]    make[7]: Nothing to be done for `install'.
[ALL  ]    make[7]: Leaving directory `/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/arm-unknown-linux-uclibcgnueabi/libiberty/testsuite'
[ALL  ]    make[6]: Leaving directory `/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc/arm-unknown-linux-uclibcgnueabi/libiberty'
[ALL  ]    make[5]: Leaving directory `/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc'
[ALL  ]    make[4]: Leaving directory `/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/.build/arm-unknown-linux-uclibcgnueabi/build/build-cc'
[ALL  ]    ln: creating symbolic link `/opt/buildroot_real6410/output_fs2410/host/usr/bin/arm-unknown-linux-uclibcgnueabi-cc': File exists
[ERROR]    Build failed in step 'Installing final compiler'
[ERROR]    Error happened in '/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR]          called from '/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/scripts/build/cc/gcc.sh' at line # 534 in function 'do_cc'
[ERROR]          called from '/opt/buildroot_real6410/output_fs2410/build/crosstool-ng-1.10.1/scripts/crosstool-NG.sh' at line # 606 in function 'main'
[ERROR]    Look at '/opt/buildroot_real6410/output_fs2410/host/usr/build.log' for more info on this error.
[ERROR]  (elapsed: 15:38.24)
make[3]: *** [build] Error 1
make[2]: *** [build.2] Error 2
make[1]: *** [/opt/buildroot_real6410/output_fs2410/stamps/ct-ng-toolchain-built] Error 2
make: *** [all] Error 2
Comment 7 Stephane Fillod 2012-01-10 16:49:29 UTC
Created attachment 3950 [details]
package/multimedia/alsa-lib/alsa-lib-1.0.24.1-uclibc-missing-versionsort.patch

uClibc users ought to upgrade.

However, if you're trapped in a parallel space-time, you may place the attached patch file in package/multimedia/alsa-lib/ for a shameful plug.