Closed Bug 1653975 Opened 4 years ago Closed 4 years ago

[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)

3.54

Tracking

(Not tracked)

RESOLVED FIXED

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.

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.

Severity: -- → S2
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3

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

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:

https://github.com/clearlinux-pkgs/nss/commit/7c50db4db3

(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 of make, since all is no longer the default target. More details are in the commit message:

https://github.com/clearlinux-pkgs/nss/commit/7c50db4db3

Thank you! I can confirm that "make all" works for NSS 3.55.

(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 of make, since all is no longer the default target. More details are in the commit message:

https://github.com/clearlinux-pkgs/nss/commit/7c50db4db3

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.

Summary: [3.53 regression] Makefile-based build fails with blapit.h:11:10: fatal error: seccomon.h: No such file or directory → [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

Just reorder the rules in manifest.mn, so all is again the first
rule.

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.

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?

Flags: needinfo?(mbakke)
Attachment #9166656 - Attachment description: Bug 1653975 make all the default target → Bug 1653975 - Set "all" as the default Makefile target

I can confirm that the attached patch fixes this issue. Thanks!

Flags: needinfo?(mbakke)
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.56
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: