Bug 12856 - tls_aesgcm.o does not build without a LONG_BIT.
Summary: tls_aesgcm.o does not build without a LONG_BIT.
Status: NEW
Alias: None
Product: Busybox
Classification: Unclassified
Component: Other (show other bugs)
Version: 1.31.x
Hardware: All Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-03 13:13 UTC by Thomas Dettbarn
Modified: 2020-05-03 15:36 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments
this is a testcase. It illustrates the LONG_BIT problem (257 bytes, text/x-csrc)
2020-05-03 15:36 UTC, Thomas Dettbarn
Details

Note You need to log in before you can comment on or make changes to this bug.
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.