All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2, 1/1] utils/genrandconfig: disable libopenssl without atomics
@ 2022-08-09 16:27 Fabrice Fontaine
  2022-08-10 21:07 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 4+ messages in thread
From: Fabrice Fontaine @ 2022-08-09 16:27 UTC (permalink / raw)
  To: buildroot; +Cc: Fabrice Fontaine

libopenssl needs atomic or the build will fail (e.g. on sparcv8 without
libatomic):

${LDCMD:-/nvmedata/autobuild/instance-7/output-1/host/bin/sparc-buildroot-linux-uclibc-gcc}  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O0 -g2  -g2  -L.   \
	-o apps/openssl apps/asn1pars.o apps/ca.o apps/ciphers.o apps/cms.o apps/crl.o apps/crl2p7.o apps/dgst.o apps/dhparam.o apps/dsa.o apps/dsaparam.o apps/ec.o apps/ecparam.o apps/enc.o apps/engine.o apps/errstr.o apps/gendsa.o apps/genpkey.o apps/genrsa.o apps/nseq.o apps/ocsp.o apps/openssl.o apps/passwd.o apps/pkcs12.o apps/pkcs7.o apps/pkcs8.o apps/pkey.o apps/pkeyparam.o apps/pkeyutl.o apps/prime.o apps/rand.o apps/rehash.o apps/req.o apps/rsa.o apps/rsautl.o apps/s_client.o apps/s_server.o apps/s_time.o apps/sess_id.o apps/smime.o apps/speed.o apps/spkac.o apps/srp.o apps/storeutl.o apps/ts.o apps/verify.o apps/version.o apps/x509.o \
	 apps/libapps.a -lssl -lcrypto -ldl
/nvmedata/autobuild/instance-7/output-1/host/lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: ./libssl.so: undefined reference to `__atomic_fetch_sub_4'

It should be noted that openssl3 has added OPENSSL_DEV_NO_ATOMICS but
"this is intended for internal development only, to check the
refcounting is properly coded.  It should never become a configuration
option, hence the name of the macro.":
https://github.com/openssl/openssl/commit/503d4745a115b82db01c1fb22baaddb153d27cdb

Fixes:
 - http://autobuild.buildroot.org/results/bce526d538f43a541fdfbc0c9b4a7cecebbbc539

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Arnout Vandecappelle and
Yann E. Morin):
 - Update utils/genrandconfig instead of trying to propagate this
   dependency

 utils/genrandconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/utils/genrandconfig b/utils/genrandconfig
index fb20dedcbf..a00ff8ee8b 100755
--- a/utils/genrandconfig
+++ b/utils/genrandconfig
@@ -246,6 +246,11 @@ def fixup_config(sysinfo, configfile):
     if 'BR2_ARM_CPU_ARMV7M=y\n' in configlines and \
        'BR2_PACKAGE_LIBFFI=y\n' in configlines:
         return False
+    # libopenssl needs atomic, but propagating this dependency in
+    # Buildroot is really too much work, so we handle this here.
+    if 'BR2_PACKAGE_LIBOPENSSL=y\n' in configlines and \
+       not 'BR2_TOOLCHAIN_HAS_ATOMIC=y\n' in configlines:
+        return False
     if 'BR2_PACKAGE_SUNXI_BOARDS=y\n' in configlines:
         configlines.remove('BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE=""\n')
         configlines.append('BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a10/hackberry.fex"\n')
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH v2, 1/1] utils/genrandconfig: disable libopenssl without atomics
  2022-08-09 16:27 [Buildroot] [PATCH v2, 1/1] utils/genrandconfig: disable libopenssl without atomics Fabrice Fontaine
@ 2022-08-10 21:07 ` Thomas Petazzoni via buildroot
  2022-08-10 21:17   ` Fabrice Fontaine
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-10 21:07 UTC (permalink / raw)
  To: Fabrice Fontaine; +Cc: Yann E. MORIN, buildroot

Hello Fabrice,

On Tue,  9 Aug 2022 18:27:14 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> libopenssl needs atomic or the build will fail (e.g. on sparcv8 without
> libatomic):
> 
> ${LDCMD:-/nvmedata/autobuild/instance-7/output-1/host/bin/sparc-buildroot-linux-uclibc-gcc}  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O0 -g2  -g2  -L.   \
> 	-o apps/openssl apps/asn1pars.o apps/ca.o apps/ciphers.o apps/cms.o apps/crl.o apps/crl2p7.o apps/dgst.o apps/dhparam.o apps/dsa.o apps/dsaparam.o apps/ec.o apps/ecparam.o apps/enc.o apps/engine.o apps/errstr.o apps/gendsa.o apps/genpkey.o apps/genrsa.o apps/nseq.o apps/ocsp.o apps/openssl.o apps/passwd.o apps/pkcs12.o apps/pkcs7.o apps/pkcs8.o apps/pkey.o apps/pkeyparam.o apps/pkeyutl.o apps/prime.o apps/rand.o apps/rehash.o apps/req.o apps/rsa.o apps/rsautl.o apps/s_client.o apps/s_server.o apps/s_time.o apps/sess_id.o apps/smime.o apps/speed.o apps/spkac.o apps/srp.o apps/storeutl.o apps/ts.o apps/verify.o apps/version.o apps/x509.o \
> 	 apps/libapps.a -lssl -lcrypto -ldl
> /nvmedata/autobuild/instance-7/output-1/host/lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: ./libssl.so: undefined reference to `__atomic_fetch_sub_4'

Why don't we link openssl with libatomic?

libatomic provides atomic builtins on all architectures.

It is normally already the case:

                        $(if $(BR2_TOOLCHAIN_HAS_LIBATOMIC),-latomic) \

in LIBOPENSSL_CONFIGURE_CMDS. But I see this linker flag is missing in
the compile command line that causes the error.

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH v2, 1/1] utils/genrandconfig: disable libopenssl without atomics
  2022-08-10 21:07 ` Thomas Petazzoni via buildroot
@ 2022-08-10 21:17   ` Fabrice Fontaine
  2022-08-11 20:55     ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 4+ messages in thread
From: Fabrice Fontaine @ 2022-08-10 21:17 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Yann E. MORIN, buildroot


[-- Attachment #1.1: Type: text/plain, Size: 2328 bytes --]

Hello Thomas,

Le mer. 10 août 2022 à 23:07, Thomas Petazzoni <thomas.petazzoni@bootlin.com>
a écrit :

> Hello Fabrice,
>
> On Tue,  9 Aug 2022 18:27:14 +0200
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>
> > libopenssl needs atomic or the build will fail (e.g. on sparcv8 without
> > libatomic):
> >
> >
> ${LDCMD:-/nvmedata/autobuild/instance-7/output-1/host/bin/sparc-buildroot-linux-uclibc-gcc}
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O0 -g2
> -g2  -L.   \
> >       -o apps/openssl apps/asn1pars.o apps/ca.o apps/ciphers.o
> apps/cms.o apps/crl.o apps/crl2p7.o apps/dgst.o apps/dhparam.o apps/dsa.o
> apps/dsaparam.o apps/ec.o apps/ecparam.o apps/enc.o apps/engine.o
> apps/errstr.o apps/gendsa.o apps/genpkey.o apps/genrsa.o apps/nseq.o
> apps/ocsp.o apps/openssl.o apps/passwd.o apps/pkcs12.o apps/pkcs7.o
> apps/pkcs8.o apps/pkey.o apps/pkeyparam.o apps/pkeyutl.o apps/prime.o
> apps/rand.o apps/rehash.o apps/req.o apps/rsa.o apps/rsautl.o
> apps/s_client.o apps/s_server.o apps/s_time.o apps/sess_id.o apps/smime.o
> apps/speed.o apps/spkac.o apps/srp.o apps/storeutl.o apps/ts.o
> apps/verify.o apps/version.o apps/x509.o \
> >        apps/libapps.a -lssl -lcrypto -ldl
> >
> /nvmedata/autobuild/instance-7/output-1/host/lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld:
> ./libssl.so: undefined reference to `__atomic_fetch_sub_4'
>
> Why don't we link openssl with libatomic?
>

> libatomic provides atomic builtins on all architectures.
>

Indeed, but libatomic is not available/enabled on all those autobuilder
build failures.
For example, BR2_TOOLCHAIN_HAS_LIBATOMIC can't be found in
http://autobuild.buildroot.org/results/bce526d538f43a541fdfbc0c9b4a7cecebbbc539/config


>
> It is normally already the case:
>
>                         $(if $(BR2_TOOLCHAIN_HAS_LIBATOMIC),-latomic) \
>
> in LIBOPENSSL_CONFIGURE_CMDS. But I see this linker flag is missing in
> the compile command line that causes the error.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>

Best Regards,

Fabrice

[-- Attachment #1.2: Type: text/html, Size: 3311 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] [PATCH v2, 1/1] utils/genrandconfig: disable libopenssl without atomics
  2022-08-10 21:17   ` Fabrice Fontaine
@ 2022-08-11 20:55     ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-11 20:55 UTC (permalink / raw)
  To: Fabrice Fontaine; +Cc: Yann E. MORIN, buildroot

On Wed, 10 Aug 2022 23:17:01 +0200
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Indeed, but libatomic is not available/enabled on all those autobuilder
> build failures.
> For example, BR2_TOOLCHAIN_HAS_LIBATOMIC can't be found in
> http://autobuild.buildroot.org/results/bce526d538f43a541fdfbc0c9b4a7cecebbbc539/config

Gah, indeed, configurations without threads, or with FLAT binaries
don't have libatomic. And indeed, propagating this dependency to all
reverse dependencies of openssl seems like a nightmare...

On the other hand, openssl is really a base library, one could see it
being enabled on a noMMU system. So real users could encounter this
build issue, if we simply avoid the problem at the autobuilder level.

I don't really have a clever idea here :-/

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-08-11 20:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-09 16:27 [Buildroot] [PATCH v2, 1/1] utils/genrandconfig: disable libopenssl without atomics Fabrice Fontaine
2022-08-10 21:07 ` Thomas Petazzoni via buildroot
2022-08-10 21:17   ` Fabrice Fontaine
2022-08-11 20:55     ` Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.