Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 704786 - dev-libs/nss-3.47.1-r1 - In file included from aes-armv8.c:16: /usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/9.2.0/include/arm_neon.h:31:2: error: #error "NEON intrinsics not available with the soft-float ABI.
Summary: dev-libs/nss-3.47.1-r1 - In file included from aes-armv8.c:16: /usr/lib/gcc/a...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: ARM Linux
: Normal normal (vote)
Assignee: Mozilla Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-04 18:46 UTC by Gordon Bos
Modified: 2020-07-23 02:41 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gordon Bos 2020-01-04 18:46:34 UTC
Apparently the build does not support softfloat?

Reproducible: Always

Actual Results:  
Relevant portion of build log

armv5tel-softfloat-linux-gnueabi-gcc -o Linux2.6_arm_armv5tel-softfloat-linux-gnueabi-gcc_glibc_PTH_OPT.OBJ/Linux_SINGLE_SHLIB/aes-armv8.o -c  -fPIC   -pipe -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall -Wshadow -DNSS_NO_GCC48 -DXP_UNIX -DSHLIB_SUFFIX=\"so\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG -D_REENTRANT -DNSS_NO_INIT_SUPPORT -DSEED_ONLY_DEV_URANDOM -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DFREEBL_NO_DEPEND -DFREEBL_LOWHASH -DUSE_HW_AES -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE  -DMP_USE_UINT_DIGIT -DSHA_NO_LONG_LONG  -DKRML_NOUINT128 -DMP_API_COMPATIBLE -I../../dist/Linux2.6_arm_armv5tel-softfloat-linux-gnueabi-gcc_glibc_PTH_OPT.OBJ/include -I../../dist/public/nss -I../../dist/private/nss -I../../dist/Linux2.6_arm_armv5tel-softfloat-linux-gnueabi-gcc_glibc_PTH_OPT.OBJ/include/dbm -Impi -Iecl -Iverified -O2 -pipe  -I/usr/armv5tel-softfloat-linux-gnueabi/usr/include/nspr -std=gnu99 -march=armv8-a -mfpu=crypto-neon-fp-armv8 aes-armv8.c
In file included from aes-armv8.c:16:
/usr/lib/gcc/armv5tel-softfloat-linux-gnueabi/9.2.0/include/arm_neon.h:31:2: error: #error "NEON intrinsics not available with the soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"
   31 | #error "NEON intrinsics not available with the soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"
      |  ^~~~~
aes-armv8.c: In function 'arm_aes_encrypt_ecb_128':
aes-armv8.c:29:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
   29 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:30:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
   30 |     uint8x16_t key11;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:37:12: warning: implicit declaration of function 'vld1q_u8' [-Wimplicit-function-declaration]
   37 |     key1 = vld1q_u8(key);
      |            ^~~~~~~~
aes-armv8.c:50:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
   50 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c:65:17: warning: implicit declaration of function 'vaeseq_u8' [-Wimplicit-function-declaration]
   65 |         state = vaeseq_u8(state, key1);
      |                 ^~~~~~~~~
aes-armv8.c:66:17: warning: implicit declaration of function 'vaesmcq_u8' [-Wimplicit-function-declaration]
   66 |         state = vaesmcq_u8(state);
      |                 ^~~~~~~~~~
aes-armv8.c:85:17: warning: implicit declaration of function 'veorq_u8' [-Wimplicit-function-declaration]
   85 |         state = veorq_u8(state, key11);
      |                 ^~~~~~~~
aes-armv8.c:91:13: warning: implicit declaration of function 'vst1q_u8' [-Wimplicit-function-declaration]
   91 |             vst1q_u8(__builtin_assume_aligned(buf, 16), state);
      |             ^~~~~~~~
aes-armv8.c: In function 'arm_aes_decrypt_ecb_128':
aes-armv8.c:114:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  114 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:115:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  115 |     uint8x16_t key11;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:135:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  135 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c:150:17: warning: implicit declaration of function 'vaesdq_u8' [-Wimplicit-function-declaration]
  150 |         state = vaesdq_u8(state, key11);
      |                 ^~~~~~~~~
aes-armv8.c:151:17: warning: implicit declaration of function 'vaesimcq_u8' [-Wimplicit-function-declaration]
  151 |         state = vaesimcq_u8(state);
      |                 ^~~~~~~~~~~
aes-armv8.c: In function 'arm_aes_encrypt_cbc_128':
aes-armv8.c:199:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  199 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:200:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  200 |     uint8x16_t key11;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:201:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  201 |     uint8x16_t iv;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:225:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  225 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_decrypt_cbc_128':
aes-armv8.c:293:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  293 |     uint8x16_t iv;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:294:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  294 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:295:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  295 |     uint8x16_t key11;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:319:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  319 |         uint8x16_t state, old_state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_encrypt_ecb_192':
aes-armv8.c:389:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  389 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:390:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  390 |     uint8x16_t key11, key12, key13;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:412:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  412 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_decrypt_ecb_192':
aes-armv8.c:480:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  480 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:481:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  481 |     uint8x16_t key11, key12, key13;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:503:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  503 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_encrypt_cbc_192':
aes-armv8.c:571:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  571 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:572:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  572 |     uint8x16_t key11, key12, key13;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:573:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  573 |     uint8x16_t iv;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:599:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  599 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_decrypt_cbc_192':
aes-armv8.c:670:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  670 |     uint8x16_t iv;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:671:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  671 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:672:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  672 |     uint8x16_t key11, key12, key13;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:698:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  698 |         uint8x16_t state, old_state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_encrypt_ecb_256':
aes-armv8.c:772:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  772 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:773:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  773 |     uint8x16_t key11, key12, key13, key14, key15;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:797:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  797 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_decrypt_ecb_256':
aes-armv8.c:868:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  868 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:869:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  869 |     uint8x16_t key11, key12, key13, key14, key15;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:893:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  893 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_encrypt_cbc_256':
aes-armv8.c:965:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  965 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:966:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  966 |     uint8x16_t key11, key12, key13, key14, key15;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:967:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  967 |     uint8x16_t iv;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:995:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
  995 |         uint8x16_t state;
      |         ^~~~~~~~~~
      |         uint16_t
aes-armv8.c: In function 'arm_aes_decrypt_cbc_256':
aes-armv8.c:1071:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
 1071 |     uint8x16_t iv;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:1072:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
 1072 |     uint8x16_t key1, key2, key3, key4, key5, key6, key7, key8, key9, key10;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:1073:5: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
 1073 |     uint8x16_t key11, key12, key13, key14, key15;
      |     ^~~~~~~~~~
      |     uint16_t
aes-armv8.c:1101:9: error: unknown type name 'uint8x16_t'; did you mean 'uint16_t'?
 1101 |         uint8x16_t state, old_state;
      |         ^~~~~~~~~~
      |         uint16_t
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2020-01-05 13:23:27 UTC
(In reply to Gordon Bos from comment #0)
> Actual Results:  
> Relevant portion of build log

Please attach the entire build log to this bug report.
Comment 2 tt_1 2020-01-10 08:27:36 UTC
there were quite a few changes regarding arm and neon code in recent months. you might want to try again with =nss-3.49, and possible use the patch from https://bugzilla.mozilla.org/show_bug.cgi?id=1608327 on top of that. 

I guess the guys at mozilla would be happy if someone tested that fix on softfloat, so go to that bug and post a comment if it either fixes your problem, or doesn't.
Comment 3 Gordon Bos 2020-01-10 13:27:01 UTC
Sorry. Forgot to report back. I had already fallen back on the schedule for a much needed new release and I decided to leave it at the 3.46 version that was already in the image.

I did however test compiling the 3.48 version (with mspr-4.24) and that one did result in an installable binary. Being pressed for time I did not perform any further tests and discarded it as I really like to restrict myself to stable packages as much as possible for this project.
Comment 4 tt_1 2020-01-25 20:30:25 UTC
I can only enourage you to try again with current nss-3.49.2, one hardfloat and one softfloat bug were fixed since the release of nss-3.49

and please report your bug upstream, there's a higher chance of getting stuff fixed that way.
Comment 5 Alexandru N. Barloiu 2020-07-23 02:41:02 UTC
I ran into a variant of this bug today. But my situation was a little bit different. 

I was running on a 64 bit kernel (arm64), with a 64 bit userland, preparing a 32bit userland with chroot. 

Seems to me, nss has a cpuflags autodetecting component which always forces a march=armv8a. In my case with +crypto. Which made the build fail. 

It's not technically cross-compiling when doing it in chroot, but I think nss needs to be built into it's own native environment. Mostly because of cpu flags which are detected when building, instead of taken from make.conf. 

The same installation, mounted over nfs, on an official v7l 32 bit kernel, still in chroot, it built just fine. 

So, on 64 bit kernel, in chroot, nss didn't want to build. On 32 bit kernel, in chroot, it was just fine.