Created attachment 895093 [details] build log from aarch64-cross there is a compile error in libcrypt-util.c 610956-In file included from ../systemd-stable-254.13/src/shared/libcrypt-util.c:21: 611034-../systemd-stable-254.13/src/shared/libcrypt-util.c: In function ‘systemd_crypt_ra’: 611123:../systemd-stable-254.13/src/shared/libcrypt-util.c:115:30: error: invalid application of ‘sizeof’ to incomplete type ‘struct crypt_data’ 611269- 115 | *data = new0(struct crypt_data, 1); 611329- | ^~~~~~ -- 611468- 26 | #define new0(t, n) ((t*) calloc((n) ?: 1, sizeof(t))) 611530- | ^ 611589:../systemd-stable-254.13/src/shared/libcrypt-util.c:121:39: error: invalid application of ‘sizeof’ to incomplete type ‘struct crypt_data’ 611735- 121 | *size = (int) (sizeof(struct crypt_data)); 611802- | ^~~~~~ the full build log is attached
Created attachment 895094 [details] output from emerge --info (cross-aarch64)
actually, there are two errors in the same file: 611855:../systemd-stable-254.13/src/shared/libcrypt-util.c:124:19: error: implicit declaration of function ‘crypt_r’; did you mean ‘crypt’? [-Werror=implicit-function-declaration] 612036- 124 | char *t = crypt_r(phrase, setting, *data); 612095- | ^~~~~~~ 612129- | crypt 612161-../systemd-stable-254.13/src/shared/libcrypt-util.c:124:19: warning: nested extern declaration of ‘crypt_r’ [-Wnested-externs] 612292:../systemd-stable-254.13/src/shared/libcrypt-util.c:124:19: error: initialization of ‘char *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion]
Created attachment 895182 [details] Decompressed build log
Comment on attachment 895093 [details] build log from aarch64-cross Please do not compress files when the do not exceed 1000 KB.
The log has this: Has header "crypt.h" : NO This is likely the cause of the failure.
Indeed, I was thinking if I may have to rebootstrap the whole cross-toolchain, as that crypt header was removed when glibc-2.38 was upgraded to glibc-2.39?
(In reply to tt_1 from comment #6) > Indeed, I was thinking if I may have to rebootstrap the whole > cross-toolchain, as that crypt header was removed when glibc-2.38 was > upgraded to glibc-2.39? I don't think a full bootstrap is necessary. You likely just need to (re)install libxcrypt with USE=system in ROOT. The system USE flag should be enabled by default, but double-check it. Two ways of doing that: aarch64-unknown-linux-gnu-emerge --oneshot sys-libs/libxcrypt or emerge --oneshot cross-aarch64-unknown-linux-gnu/libxcrypt The latter approach will require that you set up an appropriate symlink in your crossdev ebuild repo. Personally I would go with the first option since it is cleaner from a vdb standpoint.
Re-assigning to cross since this seems to be an issue with glibc upgrades when cross-compiling.