Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

configure.ac: link with -latomic if needed #1064

Closed
wants to merge 1 commit into from
Closed

configure.ac: link with -latomic if needed #1064

wants to merge 1 commit into from

Conversation

ffontaine
Copy link
Contributor

libusb unconditionally uses atomic_fetch_add since version 1.0.25 (1a08aa8 and eed8a37) but some architectures (e.g. sparc) needs to link with -latomic to be able to use it. So check if -latomic is needed and update libusb-1.0.pc accordingly to avoid the following build failure with openocd:

/home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/sparc-buildroot-linux-uclibc/sysroot/usr/lib/libusb-1.0.so: undefined reference to `__atomic_fetch_add_4'
collect2: error: ld returned 1 exit status

Fixes:

Signed-off-by: Fabrice Fontaine fontaine.fabrice@gmail.com

libusb unconditionally uses atomic_fetch_add since version 1.0.25 and
1a08aa8
eed8a37
but some architectures (e.g. sparc) needs to link with -latomic to be
able to use it. So check if -latomic is needed and update libusb-1.0.pc
accordingly to avoid the following build failure with openocd:

/home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/sparc-buildroot-linux-uclibc/sysroot/usr/lib/libusb-1.0.so: undefined reference to `__atomic_fetch_add_4'
collect2: error: ld returned 1 exit status

Fixes:
 - http://autobuild.buildroot.org/results/4a27a769bb3cdf78643c3049b87d792178d6512c

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
@mcuee mcuee added the build_ci Build system, CI label Feb 7, 2022
@tormodvolden
Copy link
Contributor

Sound good but what OS and build environment versions etc is this? It builds without -latomic on sparc64 here: https://buildd.debian.org/status/fetch.php?pkg=libusb-1.0&arch=sparc64&ver=2%3A1.0.25-1&stamp=1644184820&raw=0

@ffontaine
Copy link
Contributor Author

tormodvolden pushed a commit to tormodvolden/libusb that referenced this pull request Mar 15, 2022
libusb unconditionally uses atomic_fetch_add since version 1.0.25 and
commit 1a08aa8 and commit eed8a37 but some architectures (e.g. sparc)
needs to link with -latomic to be able to use it. So check if -latomic
is needed and update libusb-1.0.pc accordingly to avoid the following
build failure with openocd:

/home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/sparc-buildroot-linux-uclibc/sysroot/usr/lib/libusb-1.0.so: undefined reference to `__atomic_fetch_add_4'
collect2: error: ld returned 1 exit status

Full build log:
http://autobuild.buildroot.org/results/4a27a769bb3cdf78643c3049b87d792178d6512c

Closes libusb#1064

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build_ci Build system, CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants