Message ID | 20200513073537.17950-1-james.hilliard1@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/1] package/apcupsd: fix missing __exchange_and_add symbol | expand |
On Wed, 13 May 2020 01:35:37 -0600 James Hilliard <james.hilliard1@gmail.com> wrote: > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > platforms so link with libstdc++ as well on sparc and arcle. > > Fixes: > http://autobuild.buildroot.net/results/bb9/bb96f327d5343a3561ea978f480585b418ce52e1/build-end.log > http://autobuild.buildroot.net/results/5a5/5a513669b0e56f38418e42d9ae733554fe6c73f1/build-end.log > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > --- > package/apcupsd/apcupsd.mk | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/package/apcupsd/apcupsd.mk b/package/apcupsd/apcupsd.mk > index 410bce9aec..6088a41cc3 100644 > --- a/package/apcupsd/apcupsd.mk > +++ b/package/apcupsd/apcupsd.mk > @@ -14,10 +14,18 @@ ifneq ($(BR2_PACKAGE_APCUPSD_MODBUS_USB)$(BR2_PACKAGE_APCUPSD_USB),) > APCUPSD_CONF_ENV += ac_cv_path_usbcfg=$(STAGING_DIR)/usr/bin/libusb-config > ifeq ($(BR2_STATIC_LIBS),y) > APCUPSD_DEPENDENCIES += host-pkgconf > -APCUPSD_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libusb`" > +APCUPSD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libusb` > endif > endif > > +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) > +# __exchange_and_add symbol is missing from libsupc++ on these platforms > +ifeq ($(BR2_sparc)$(BR2_arcle),y) > +APCUPSD_LIBS += -lstdc++ > +endif > +endif > +APCUPSD_CONF_ENV += LIBS+="$(APCUPSD_LIBS)" Meh. We really want to fix that in uClibc, if it's a uClibc issue. Thomas
On Wed, May 13, 2020 at 3:22 AM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > On Wed, 13 May 2020 01:35:37 -0600 > James Hilliard <james.hilliard1@gmail.com> wrote: > > > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > > platforms so link with libstdc++ as well on sparc and arcle. > > > > Fixes: > > http://autobuild.buildroot.net/results/bb9/bb96f327d5343a3561ea978f480585b418ce52e1/build-end.log > > http://autobuild.buildroot.net/results/5a5/5a513669b0e56f38418e42d9ae733554fe6c73f1/build-end.log > > > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > > --- > > package/apcupsd/apcupsd.mk | 10 +++++++++- > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/package/apcupsd/apcupsd.mk b/package/apcupsd/apcupsd.mk > > index 410bce9aec..6088a41cc3 100644 > > --- a/package/apcupsd/apcupsd.mk > > +++ b/package/apcupsd/apcupsd.mk > > @@ -14,10 +14,18 @@ ifneq ($(BR2_PACKAGE_APCUPSD_MODBUS_USB)$(BR2_PACKAGE_APCUPSD_USB),) > > APCUPSD_CONF_ENV += ac_cv_path_usbcfg=$(STAGING_DIR)/usr/bin/libusb-config > > ifeq ($(BR2_STATIC_LIBS),y) > > APCUPSD_DEPENDENCIES += host-pkgconf > > -APCUPSD_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libusb`" > > +APCUPSD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libusb` > > endif > > endif > > > > +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) > > +# __exchange_and_add symbol is missing from libsupc++ on these platforms > > +ifeq ($(BR2_sparc)$(BR2_arcle),y) > > +APCUPSD_LIBS += -lstdc++ > > +endif > > +endif > > +APCUPSD_CONF_ENV += LIBS+="$(APCUPSD_LIBS)" > > Meh. We really want to fix that in uClibc, if it's a uClibc issue. Well no idea if it's a bug in uClibc but the failures seem to be limited to builds using uClibc. The libsupc++.a library appears to be originating from gcc, I don't really know why this issues seems to be specific to uClibc and those 2 archs. > > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com
Dear ARC maintainers, Could you have a look at the below issue ? It seems really odd that just ARC and Sparc have this issue. I'd like to understand better before linking manually with libstdc++. I'm sure your toolchain experts will be able to shed some useful light on this weird issue. Thanks a lot for your help, Thomas On Wed, 13 May 2020 01:35:37 -0600 James Hilliard <james.hilliard1@gmail.com> wrote: > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > platforms so link with libstdc++ as well on sparc and arcle. > > Fixes: > http://autobuild.buildroot.net/results/bb9/bb96f327d5343a3561ea978f480585b418ce52e1/build-end.log > http://autobuild.buildroot.net/results/5a5/5a513669b0e56f38418e42d9ae733554fe6c73f1/build-end.log > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > --- > package/apcupsd/apcupsd.mk | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/package/apcupsd/apcupsd.mk b/package/apcupsd/apcupsd.mk > index 410bce9aec..6088a41cc3 100644 > --- a/package/apcupsd/apcupsd.mk > +++ b/package/apcupsd/apcupsd.mk > @@ -14,10 +14,18 @@ ifneq ($(BR2_PACKAGE_APCUPSD_MODBUS_USB)$(BR2_PACKAGE_APCUPSD_USB),) > APCUPSD_CONF_ENV += ac_cv_path_usbcfg=$(STAGING_DIR)/usr/bin/libusb-config > ifeq ($(BR2_STATIC_LIBS),y) > APCUPSD_DEPENDENCIES += host-pkgconf > -APCUPSD_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libusb`" > +APCUPSD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libusb` > endif > endif > > +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) > +# __exchange_and_add symbol is missing from libsupc++ on these platforms > +ifeq ($(BR2_sparc)$(BR2_arcle),y) > +APCUPSD_LIBS += -lstdc++ > +endif > +endif > +APCUPSD_CONF_ENV += LIBS+="$(APCUPSD_LIBS)" > + > ifeq ($(BR2_PACKAGE_APCUPSD_APCSMART),y) > APCUPSD_CONF_OPTS += --enable-apcsmart > else
James, All, On 2020-05-13 03:43 -0600, James Hilliard spake thusly: > On Wed, May 13, 2020 at 3:22 AM Thomas Petazzoni > <thomas.petazzoni@bootlin.com> wrote: > > On Wed, 13 May 2020 01:35:37 -0600 > > James Hilliard <james.hilliard1@gmail.com> wrote: > > > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > > > platforms so link with libstdc++ as well on sparc and arcle. [--SNIP--] > > Meh. We really want to fix that in uClibc, if it's a uClibc issue. > Well no idea if it's a bug in uClibc but the failures seem to be > limited to builds > using uClibc. The libsupc++.a library appears to be originating from > gcc, I don't > really know why this issues seems to be specific to uClibc and those 2 archs. Pleas see the reply I wrote to another similar patch: http://lists.busybox.net/pipermail/buildroot/2020-August/289411.html Regards, Yann E. MORIN.
On Mon, Aug 17, 2020 at 1:28 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > James, All, > > On 2020-05-13 03:43 -0600, James Hilliard spake thusly: > > On Wed, May 13, 2020 at 3:22 AM Thomas Petazzoni > > <thomas.petazzoni@bootlin.com> wrote: > > > On Wed, 13 May 2020 01:35:37 -0600 > > > James Hilliard <james.hilliard1@gmail.com> wrote: > > > > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > > > > platforms so link with libstdc++ as well on sparc and arcle. > [--SNIP--] > > > Meh. We really want to fix that in uClibc, if it's a uClibc issue. > > Well no idea if it's a bug in uClibc but the failures seem to be > > limited to builds > > using uClibc. The libsupc++.a library appears to be originating from > > gcc, I don't > > really know why this issues seems to be specific to uClibc and those 2 archs. > > Pleas see the reply I wrote to another similar patch: Not sure if that's really getting at the real issue, I found this which seems likely to be related to the root cause of the failure: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70560 > > http://lists.busybox.net/pipermail/buildroot/2020-August/289411.html > > Regards, > Yann E. MORIN. > > -- > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > '------------------------------^-------^------------------^--------------------'
On Mon, Aug 17, 2020 at 3:08 AM James Hilliard <james.hilliard1@gmail.com> wrote: > > On Mon, Aug 17, 2020 at 1:28 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > > > James, All, > > > > On 2020-05-13 03:43 -0600, James Hilliard spake thusly: > > > On Wed, May 13, 2020 at 3:22 AM Thomas Petazzoni > > > <thomas.petazzoni@bootlin.com> wrote: > > > > On Wed, 13 May 2020 01:35:37 -0600 > > > > James Hilliard <james.hilliard1@gmail.com> wrote: > > > > > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > > > > > platforms so link with libstdc++ as well on sparc and arcle. > > [--SNIP--] > > > > Meh. We really want to fix that in uClibc, if it's a uClibc issue. > > > Well no idea if it's a bug in uClibc but the failures seem to be > > > limited to builds > > > using uClibc. The libsupc++.a library appears to be originating from > > > gcc, I don't > > > really know why this issues seems to be specific to uClibc and those 2 archs. > > > > Pleas see the reply I wrote to another similar patch: > Not sure if that's really getting at the real issue, I found this which seems > likely to be related to the root cause of the failure: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70560 Looks like this is confirmed to be a gcc/libstdc++ bug, see here for details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96657 > > > > http://lists.busybox.net/pipermail/buildroot/2020-August/289411.html > > > > Regards, > > Yann E. MORIN. > > > > -- > > .-----------------.--------------------.------------------.--------------------. > > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > > '------------------------------^-------^------------------^--------------------'
Upstream gcc fix: https://gcc.gnu.org/g:6c0c7fc6236470a533675cd3cd1ebb1cc3dd112c On Mon, Aug 17, 2020 at 6:48 AM James Hilliard <james.hilliard1@gmail.com> wrote: > > On Mon, Aug 17, 2020 at 3:08 AM James Hilliard > <james.hilliard1@gmail.com> wrote: > > > > On Mon, Aug 17, 2020 at 1:28 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > > > > > James, All, > > > > > > On 2020-05-13 03:43 -0600, James Hilliard spake thusly: > > > > On Wed, May 13, 2020 at 3:22 AM Thomas Petazzoni > > > > <thomas.petazzoni@bootlin.com> wrote: > > > > > On Wed, 13 May 2020 01:35:37 -0600 > > > > > James Hilliard <james.hilliard1@gmail.com> wrote: > > > > > > It seems libsupc++.a is missing __exchange_and_add for uclibc on some > > > > > > platforms so link with libstdc++ as well on sparc and arcle. > > > [--SNIP--] > > > > > Meh. We really want to fix that in uClibc, if it's a uClibc issue. > > > > Well no idea if it's a bug in uClibc but the failures seem to be > > > > limited to builds > > > > using uClibc. The libsupc++.a library appears to be originating from > > > > gcc, I don't > > > > really know why this issues seems to be specific to uClibc and those 2 archs. > > > > > > Pleas see the reply I wrote to another similar patch: > > Not sure if that's really getting at the real issue, I found this which seems > > likely to be related to the root cause of the failure: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70560 > Looks like this is confirmed to be a gcc/libstdc++ bug, see here for details: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96657 > > > > > > http://lists.busybox.net/pipermail/buildroot/2020-August/289411.html > > > > > > Regards, > > > Yann E. MORIN. > > > > > > -- > > > .-----------------.--------------------.------------------.--------------------. > > > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > > > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > > > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > > > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > > > '------------------------------^-------^------------------^--------------------'
diff --git a/package/apcupsd/apcupsd.mk b/package/apcupsd/apcupsd.mk index 410bce9aec..6088a41cc3 100644 --- a/package/apcupsd/apcupsd.mk +++ b/package/apcupsd/apcupsd.mk @@ -14,10 +14,18 @@ ifneq ($(BR2_PACKAGE_APCUPSD_MODBUS_USB)$(BR2_PACKAGE_APCUPSD_USB),) APCUPSD_CONF_ENV += ac_cv_path_usbcfg=$(STAGING_DIR)/usr/bin/libusb-config ifeq ($(BR2_STATIC_LIBS),y) APCUPSD_DEPENDENCIES += host-pkgconf -APCUPSD_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libusb`" +APCUPSD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libusb` endif endif +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) +# __exchange_and_add symbol is missing from libsupc++ on these platforms +ifeq ($(BR2_sparc)$(BR2_arcle),y) +APCUPSD_LIBS += -lstdc++ +endif +endif +APCUPSD_CONF_ENV += LIBS+="$(APCUPSD_LIBS)" + ifeq ($(BR2_PACKAGE_APCUPSD_APCSMART),y) APCUPSD_CONF_OPTS += --enable-apcsmart else
It seems libsupc++.a is missing __exchange_and_add for uclibc on some platforms so link with libstdc++ as well on sparc and arcle. Fixes: http://autobuild.buildroot.net/results/bb9/bb96f327d5343a3561ea978f480585b418ce52e1/build-end.log http://autobuild.buildroot.net/results/5a5/5a513669b0e56f38418e42d9ae733554fe6c73f1/build-end.log Signed-off-by: James Hilliard <james.hilliard1@gmail.com> --- package/apcupsd/apcupsd.mk | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)