Skip to content

check-symbol failure on Nix base toolchain #619

@lxsameer

Description

@lxsameer

Hey folks,
How reliable is the check-symbols target? I have a slightly modified (only added WebAssembly backend to llvm) clang based toolchain in nix, and I'm compiling wasi-lib like this:

      TARGET_TRIPLE=wasm32-wasi bash scripts/install-include-headers.sh
      make CC=${llvmPackages_latest.clang-unwrapped}/bin/clang-$clang_version \
           SYSROOT=$SYSROOT \
           SYSROOT_LIB=$SYSROOT_LIB \
           SYSROOT_INC=$SYSROOT_INC \
           SYSROOT_SHARE=$SYSROOT_SHARE \
           AR="${llvmPackages_latest.libllvm}/bin/llvm-ar" \
           NM="${llvmPackages_latest.libllvm}/bin/llvm-nm" \
           EXTRA_CFLAGS="-isystem ${llvmPackages_latest.clang-unwrapped.lib}/lib/clang/$clang_version/include"

But at the very last step of the compilation the diff command in check-symbols fails and returns a diff which is like:

...
wasi-libc-wasi-sdk>  #define icmp_wpa icmp_hun.ih_rtradv.irt_wpa
wasi-libc-wasi-sdk>  #define ifa_broadaddr ifa_ifu.ifu_broadaddr
wasi-libc-wasi-sdk>  #define ifa_dstaddr ifa_ifu.ifu_dstaddr
wasi-libc-wasi-sdk> -#define ilogb(x) __tg_real_nocast(ilogb, (x))
wasi-libc-wasi-sdk> +#define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define ino64_t ino_t
wasi-libc-wasi-sdk>  #define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
wasi-libc-wasi-sdk>  #define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
wasi-libc-wasi-sdk> @@ -3345,24 +3334,24 @@
wasi-libc-wasi-sdk>  #define isunordered(x,y) (__builtin_isunordered(x, y))
wasi-libc-wasi-sdk>  #define isupper(a) (0 ? isupper(a) : ((unsigned)(a)-'A') < 26)
wasi-libc-wasi-sdk>  #define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10)
wasi-libc-wasi-sdk> -#define ldexp(x,y) __tg_real_2_1(ldexp, (x), (y))
wasi-libc-wasi-sdk> +#define ldexp(__x,__y) __tg_ldexp(__tg_promote1((__x))(__x), __y)
wasi-libc-wasi-sdk>  #define le16toh(x) (uint16_t)(x)
wasi-libc-wasi-sdk>  #define le32toh(x) (uint32_t)(x)
wasi-libc-wasi-sdk>  #define le64toh(x) (uint64_t)(x)
wasi-libc-wasi-sdk>  #define letoh16(x) (uint16_t)(x)
wasi-libc-wasi-sdk>  #define letoh32(x) (uint32_t)(x)
wasi-libc-wasi-sdk>  #define letoh64(x) (uint64_t)(x)
wasi-libc-wasi-sdk> -#define lgamma(x) __tg_real(lgamma, (x))
wasi-libc-wasi-sdk> -#define llrint(x) __tg_real_nocast(llrint, (x))
wasi-libc-wasi-sdk> -#define llround(x) __tg_real_nocast(llround, (x))
wasi-libc-wasi-sdk> +#define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define llround(__x) __tg_llround(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define loff_t off_t
wasi-libc-wasi-sdk> -#define log(x) __tg_real_complex(log, (x))
wasi-libc-wasi-sdk> -#define log10(x) __tg_real(log10, (x))
wasi-libc-wasi-sdk> -#define log1p(x) __tg_real(log1p, (x))
wasi-libc-wasi-sdk> -#define log2(x) __tg_real(log2, (x))
wasi-libc-wasi-sdk> -#define logb(x) __tg_real(logb, (x))
wasi-libc-wasi-sdk> -#define lrint(x) __tg_real_nocast(lrint, (x))
wasi-libc-wasi-sdk> -#define lround(x) __tg_real_nocast(lround, (x))
wasi-libc-wasi-sdk> +#define log(__x) __tg_log(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define log10(__x) __tg_log10(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define log2(__x) __tg_log2(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define logb(__x) __tg_logb(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define lround(__x) __tg_lround(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define lseek(fd,offset,whence) ({ off_t __f = (fd); off_t __o = (offset); off_t __w = (whence); __builtin_constant_p((offset)) && __builtin_constant_p((whence)) && __o == 0 && __w == SEEK_CUR ? __wasilibc_tell(__f) : lseek(__f, __o, __w); })
wasi-libc-wasi-sdk>  #define lseek64 lseek
wasi-libc-wasi-sdk>  #define lstat64 lstat
wasi-libc-wasi-sdk> @@ -3394,9 +3383,9 @@
wasi-libc-wasi-sdk>  #define nd_rs_code nd_rs_hdr.icmp6_code
wasi-libc-wasi-sdk>  #define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]
wasi-libc-wasi-sdk>  #define nd_rs_type nd_rs_hdr.icmp6_type
wasi-libc-wasi-sdk> -#define nearbyint(x) __tg_real(nearbyint, (x))
wasi-libc-wasi-sdk> -#define nextafter(x,y) __tg_real_2(nextafter, (x), (y))
wasi-libc-wasi-sdk> -#define nexttoward(x,y) __tg_real_2(nexttoward, (x), (y))
wasi-libc-wasi-sdk> +#define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define nextafter(__x,__y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), __tg_promote2((__x), (__y))(__y))
wasi-libc-wasi-sdk> +#define nexttoward(__x,__y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
wasi-libc-wasi-sdk>  #define nftw64 nftw
wasi-libc-wasi-sdk>  #define no_argument 0
wasi-libc-wasi-sdk>  #define noreturn _Noreturn
wasi-libc-wasi-sdk> @@ -3428,7 +3417,7 @@
wasi-libc-wasi-sdk>  #define or_eq |=
wasi-libc-wasi-sdk>  #define posix_fadvise64 posix_fadvise
wasi-libc-wasi-sdk>  #define posix_fallocate64 posix_fallocate
wasi-libc-wasi-sdk> -#define pow(x,y) __tg_real_complex_pow((x), (y))
wasi-libc-wasi-sdk> +#define pow(__x,__y) __tg_pow(__tg_promote2((__x), (__y))(__x), __tg_promote2((__x), (__y))(__y))
wasi-libc-wasi-sdk>  #define powerof2(n) !(((n)-1) & (n))
wasi-libc-wasi-sdk>  #define pread64 pread
wasi-libc-wasi-sdk>  #define preadv64 preadv
wasi-libc-wasi-sdk> @@ -3438,24 +3427,24 @@
wasi-libc-wasi-sdk>  #define pwrite64 pwrite
wasi-libc-wasi-sdk>  #define pwritev64 pwritev
wasi-libc-wasi-sdk>  #define readdir64 readdir
wasi-libc-wasi-sdk> -#define remainder(x,y) __tg_real_2(remainder, (x), (y))
wasi-libc-wasi-sdk> -#define remquo(x,y,z) __tg_real_remquo((x), (y), (z))
wasi-libc-wasi-sdk> +#define remainder(__x,__y) __tg_remainder(__tg_promote2((__x), (__y))(__x), __tg_promote2((__x), (__y))(__y))
wasi-libc-wasi-sdk> +#define remquo(__x,__y,__z) __tg_remquo(__tg_promote2((__x), (__y))(__x), __tg_promote2((__x), (__y))(__y), (__z))
wasi-libc-wasi-sdk>  #define required_argument 1
wasi-libc-wasi-sdk> -#define rint(x) __tg_real(rint, (x))
wasi-libc-wasi-sdk> -#define round(x) __tg_real(round, (x))
wasi-libc-wasi-sdk> +#define rint(__x) __tg_rint(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define round(__x) __tg_round(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define roundup(n,d) (howmany(n,d)*(d))
wasi-libc-wasi-sdk>  #define rr_cksum rr_hdr.icmp6_cksum
wasi-libc-wasi-sdk>  #define rr_code rr_hdr.icmp6_code
wasi-libc-wasi-sdk>  #define rr_seqnum rr_hdr.icmp6_data32[0]
wasi-libc-wasi-sdk>  #define rr_type rr_hdr.icmp6_type
wasi-libc-wasi-sdk> -#define scalbln(x,y) __tg_real_2_1(scalbln, (x), (y))
wasi-libc-wasi-sdk> -#define scalbn(x,y) __tg_real_2_1(scalbn, (x), (y))
wasi-libc-wasi-sdk> +#define scalbln(__x,__y) __tg_scalbln(__tg_promote1((__x))(__x), __y)
wasi-libc-wasi-sdk> +#define scalbn(__x,__y) __tg_scalbn(__tg_promote1((__x))(__x), __y)
wasi-libc-wasi-sdk>  #define scandir64 scandir
wasi-libc-wasi-sdk>  #define setbit(x,i) __bitop(x,i,|=)
wasi-libc-wasi-sdk>  #define signbit(x) (__builtin_signbit(x))
wasi-libc-wasi-sdk> -#define sin(x) __tg_real_complex(sin, (x))
wasi-libc-wasi-sdk> -#define sinh(x) __tg_real_complex(sinh, (x))
wasi-libc-wasi-sdk> -#define sqrt(x) __tg_real_complex(sqrt, (x))
wasi-libc-wasi-sdk> +#define sin(__x) __tg_sin(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define st_atime st_atim.tv_sec
wasi-libc-wasi-sdk>  #define st_ctime st_ctim.tv_sec
wasi-libc-wasi-sdk>  #define st_mtime st_mtim.tv_sec
wasi-libc-wasi-sdk> @@ -3466,10 +3455,10 @@
wasi-libc-wasi-sdk>  #define stdin (stdin)
wasi-libc-wasi-sdk>  #define stdout (stdout)
wasi-libc-wasi-sdk>  #define strdupa(x) strcpy(alloca(strlen(x)+1),x)
wasi-libc-wasi-sdk> -#define tan(x) __tg_real_complex(tan, (x))
wasi-libc-wasi-sdk> -#define tanh(x) __tg_real_complex(tanh, (x))
wasi-libc-wasi-sdk> +#define tan(__x) __tg_tan(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk> +#define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define telcmds ((char [][6]){ "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 })
wasi-libc-wasi-sdk> -#define tgamma(x) __tg_real(tgamma, (x))
wasi-libc-wasi-sdk> +#define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define th_block th_u.tu_block
wasi-libc-wasi-sdk>  #define th_code th_u.tu_code
wasi-libc-wasi-sdk>  #define th_msg th_data
wasi-libc-wasi-sdk> @@ -3482,7 +3471,7 @@
wasi-libc-wasi-sdk>  #define timerisset(t) ((t)->tv_sec || (t)->tv_usec)
wasi-libc-wasi-sdk>  #define timersub(s,t,a) (void) ( (a)->tv_sec = (s)->tv_sec - (t)->tv_sec, ((a)->tv_usec = (s)->tv_usec - (t)->tv_usec) < 0 && ((a)->tv_usec += 1000000, (a)->tv_sec--) )
wasi-libc-wasi-sdk>  #define true 1
wasi-libc-wasi-sdk> -#define trunc(x) __tg_real(trunc, (x))
wasi-libc-wasi-sdk> +#define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x))
wasi-libc-wasi-sdk>  #define uh_dport dest
wasi-libc-wasi-sdk>  #define uh_sport source
wasi-libc-wasi-sdk>  #define uh_sum check
wasi-libc-wasi-sdk> make: *** [Makefile:958: check-symbols] Error 1
...

Any idea where I went wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions