[3.53 regression] Make default target changed - Makefile-based build fails with blapit.h:11:10: fatal error: seccomon.h: No such file or directory
Categories
(NSS :: Build, defect, P3)
Tracking
(Not tracked)
People
(Reporter: mbakke, Unassigned)
Details
Attachments
(1 file)
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
Steps to reproduce:
After updating from 3.52.1 to 3.53.1 (and 3.54), the build fails due to header files included by loader.c not being able to find seccomon.h. No changes were made to the build steps since 3.52.1.
Actual results:
Early during the build, the compiler hits a fatal error:
make[2]: Entering directory '/tmp/guix-build-nss-3.53.1.drv-0/nss-3.53.1/nss/lib/freebl'
gcc -o Linux4.19_x86_64_gcc_glibc_PTH_64_DBG.OBJ/loader.o -c -std=c99 -g -fPIC -m64 -pipe -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall -Wshadow -Werror -DXP_UNIX -DSHLIB_SUFFIX="so" -DSHLIB_PREFIX="lib" -DSHLIB_VERSION="3" -DSOFTOKEN_SHLIB_VERSION="3" -DRIJNDAEL_INCLUDE_TABLES -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -DSQL_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_DISABLE_AVX2 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DNSS_USE_64 -DFREEBL_NO_DEPEND -DFREEBL_LOWHASH -DNSS_X86_OR_X64 -DNSS_X64 -DNSS_BEVAND_ARCFOUR -DMPI_AMD64 -DMP_ASSEMBLY_MULTIPLY -DNSS_USE_COMBA -DMP_IS_LITTLE_ENDIAN -DUSE_HW_AES -DINTEL_GCM -DHAVE_INT128_SUPPORT -DMP_API_COMPATIBLE -I/gnu/store/vqajm09by8dxxfl1fd7n45blfhzyg1gm-nspr-4.25/include/nspr -I../../../dist/Linux4.19_x86_64_gcc_glibc_PTH_64_DBG.OBJ/include -I../../../dist/public/nss -I../../../dist/private/nss -Impi -Iecl -Iverified -Iverified/kremlin/include -Iverified/kremlin/kremlib/dist/minimal -Ideprecated loader.c
In file included from blapi.h:11:0,
from loader.h:11,
from loader.c:8:
blapit.h:11:10: fatal error: seccomon.h: No such file or directory
#include "seccomon.h"
^~~~~~~~~~~~
compilation terminated.
make[2]: *** [../../coreconf/rules.mk:292: Linux4.19_x86_64_gcc_glibc_PTH_64_DBG.OBJ/loader.o] Error 1
Expected results:
The build proceeds successfully.
Comment 1•5 years ago
|
||
This is the second report we've seen like this, and it's clearly the makefile updates that happened in 3.53.
I haven't been able to find a platform that reproduces. I take it this is Guix? Could you tell me what version of Make you're using? (make -v
)
If possible, I'd recommend switching to the gyp-based build system instead of the makefiles... but I understand that's not always possible.
Updated•5 years ago
|
Comment 2•5 years ago
|
||
Added to the 3.55 relnotes: https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.55_release_notes#Known_Issues
We saw this on NixOS as well, so depending on how similar the guix nss expression is to the nix expression, you might be able to apply the changes we made to transition to the gyp base build-system https://github.com/NixOS/nixpkgs/commits/8f925208cde51b12bbce209c635d641c9ca31751/pkgs/development/libraries/nss/default.nix
Comment 4•5 years ago
|
||
For Clear Linux OS, we encountered this issue when working on the 3.53 update, and I had discovered that we needed to run make all
instead of make
, since all
is no longer the default target. More details are in the commit message:
(In reply to Patrick McCarty from comment #4)
For Clear Linux OS, we encountered this issue when working on the 3.53 update, and I had discovered that we needed to run
make all
instead ofmake
, sinceall
is no longer the default target. More details are in the commit message:
Thank you! I can confirm that "make all" works for NSS 3.55.
Comment 6•5 years ago
|
||
(In reply to Patrick McCarty from comment #4)
For Clear Linux OS, we encountered this issue when working on the 3.53 update, and I had discovered that we needed to run
make all
instead ofmake
, sinceall
is no longer the default target. More details are in the commit message:
Thank you! I added that note to https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.55_release_notes#Known_Issues too.
Comment 7•5 years ago
|
||
Just reorder the rules in manifest.mn, so all is again the first
rule.
Comment 8•5 years ago
|
||
That change is definitely not intentional. I just used the nss_build_all
target all the time to test the (rather large) Makefile changes. Just reorganizing the rules in the manifest.mn
should be sufficient to fix this. Currently don't have a build setup, so that patch is untested, but the solution seems so straight forward (famous last words, I guess).
And I never realized the manifest.mn
didn't have any rules previously.
Comment 9•5 years ago
|
||
This patch looks right, but my configuration does not trigger the original error. mbakke (or anyone else who encountered this): would you be able to confirm that the patch from comment 7 fixes the build?
Updated•5 years ago
|
Reporter | ||
Comment 10•5 years ago
|
||
I can confirm that the attached patch fixes this issue. Thanks!
Comment 11•5 years ago
|
||
Description
•