Bug 12856

Summary: tls_aesgcm.o does not build without a LONG_BIT.
Product: Busybox Reporter: Thomas Dettbarn <dettus>
Component: OtherAssignee: unassigned
Status: NEW ---    
Severity: normal CC: busybox-cvs
Priority: P5    
Version: 1.31.x   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:
Attachments: this is a testcase. It illustrates the LONG_BIT problem

Description Thomas Dettbarn 2020-05-03 13:13:43 UTC
AR      libbb/lib.a
  CC      networking/tls_aesgcm.o
networking/tls_aesgcm.c: In function 'RIGHTSHIFTX':
networking/tls_aesgcm.c:76:36: error: 'LONG_BIT' undeclared (first use in this function); did you mean 'LONG_MIN'?
         ? ((unsigned long)0xE1 << (LONG_BIT-8))
                                    ^~~~~~~~
                                    LONG_MIN
networking/tls_aesgcm.c:76:36: note: each undeclared identifier is reported only once for each function it appears in


I just stumbled upon this build error.
LONG_BIT is apparently a define that is only being used in that file.


What I am trying to do is to create my own set of scripts to build a Linux System.
An older version can be found here, if you are interested:

https://www.dettus.net/detLFS/detLFS_0.06.tar.gz


I wanted to update to busybox 1.31.1, since it is the most recent one.

Unfortunately, it does not build. Deactivating TLS in the .config does not seem to work the way I intended either.
I already filed a bug for that one.
Comment 1 Thomas Dettbarn 2020-05-03 15:36:39 UTC
Created attachment 8456 [details]
this is a testcase. It illustrates the LONG_BIT problem

I took the liberty of creating a testcase.
I was able to replicate my problem on a Ubuntu 18.04 PC.

When trying to compile the file with 

gcc -O3 -o longbit.app longbit.c

it will fail. If you look into the sourcecode, you will see one include being commented out. If you comment it back in, it will work.

including the same file in busybox' networking/tls_aesgcm.c file seems to do the trick as well.


However, this is propably just a HOTFIX.