Skip to content

mingw-w64 libc regressed #3285

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
andrewrk opened this issue Sep 22, 2019 · 0 comments
Closed

mingw-w64 libc regressed #3285

andrewrk opened this issue Sep 22, 2019 · 0 comments
Labels
bug Observed behavior contradicts documented or intended behavior os-windows
Milestone

Comments

@andrewrk
Copy link
Member

I'll have a commit shortly that will add test coverage for this (among other things) but I couldn't enable it for -target x86_64-windows-gnu because it regressed:

/home/andy/dev/zig/build/zig test /home/andy/dev/zig/test/stage1/behavior.zig --library c --test-name-prefix behavior-windows-x86_64-Debug-c-multi  --cache-dir /home/andy/dev/zig/zig-cache --name test -target x86_64-windows-gnu --test-cmd wine64 --test-cmd-bin --override-std-dir /home/andy/dev/zig/std 
In file included from /home/andy/dev/zig/build/lib/zig/libc/mingw/crt/gs_support.c:16:
In file included from /home/andy/dev/zig/build/lib/zig/include/intrin.h:12:
In file included from /home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/intrin.h:41:
/home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/psdk_inc/intrin-impl.h:1944:18: error: function cannot return function type 'int (unsigned int)'
unsigned __int64 _xgetbv(unsigned int);
                 ^
/home/andy/dev/zig/build/lib/zig/include/xsaveintrin.h:35:42: note: expanded from macro '_xgetbv'
#define _xgetbv(A) __builtin_ia32_xgetbv((long long)(A))
                                         ^
In file included from /home/andy/dev/zig/build/lib/zig/libc/mingw/crt/gs_support.c:16:
In file included from /home/andy/dev/zig/build/lib/zig/include/intrin.h:12:
In file included from /home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/intrin.h:41:
/home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/psdk_inc/intrin-impl.h:1947:18: error: function cannot return function type 'int (unsigned int)'
unsigned __int64 _xgetbv(unsigned int index)
                 ^
/home/andy/dev/zig/build/lib/zig/include/xsaveintrin.h:35:42: note: expanded from macro '_xgetbv'
#define _xgetbv(A) __builtin_ia32_xgetbv((long long)(A))
                                         ^
In file included from /home/andy/dev/zig/build/lib/zig/libc/mingw/crt/gs_support.c:16:
In file included from /home/andy/dev/zig/build/lib/zig/include/intrin.h:12:
In file included from /home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/intrin.h:41:
/home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/psdk_inc/intrin-impl.h:1947:18: error: definition of builtin function '__builtin_ia32_xgetbv'
/home/andy/dev/zig/build/lib/zig/include/xsaveintrin.h:35:20: note: expanded from macro '_xgetbv'
#define _xgetbv(A) __builtin_ia32_xgetbv((long long)(A))
                   ^
In file included from /home/andy/dev/zig/build/lib/zig/libc/mingw/crt/gs_support.c:16:
In file included from /home/andy/dev/zig/build/lib/zig/include/intrin.h:12:
In file included from /home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/intrin.h:41:
/home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any/psdk_inc/intrin-impl.h:1947:18: error: parameter name omitted
/home/andy/dev/zig/build/lib/zig/include/xsaveintrin.h:35:43: note: expanded from macro '_xgetbv'
#define _xgetbv(A) __builtin_ia32_xgetbv((long long)(A))
                                          ^
4 errors generated.

The following command failed:
/home/andy/dev/zig/build/zig cc -MD -MV -MF /home/andy/.local/share/zig/stage1/tmp/EVEG8z_6N-4f-gs_support.o.d -nostdinc -fno-spell-checking -isystem /home/andy/dev/zig/build/lib/zig/include -target x86_64-unknown-windows-gnu -Wno-pragma-pack -g -fno-omit-frame-pointer -D_DEBUG -fno-stack-protector -o /home/andy/.local/share/zig/stage1/tmp/EVEG8z_6N-4f-gs_support.o -c /home/andy/dev/zig/build/lib/zig/libc/mingw/crt/gs_support.c -DHAVE_CONFIG_H -D_SYSCRT=1 -DCRTDLL=1 -isystem /home/andy/dev/zig/build/lib/zig/libc/include/any-windows-any -isystem /home/andy/dev/zig/build/lib/zig/libc/mingw/include -std=gnu99 -D_CRTBLD -D_WIN32_WINNT=0x0f00 -D__MSVCRT_VERSION__=0x700 -g -O2
@andrewrk andrewrk added bug Observed behavior contradicts documented or intended behavior os-windows labels Sep 22, 2019
@andrewrk andrewrk added this to the 0.5.0 milestone Sep 22, 2019
andrewrk added a commit that referenced this issue Sep 22, 2019
 * add zig build option `-Dskip-libc` to skip tests that build libc
   (e.g. if you don't want to wait for musl to build)
 * add `-Denable-wine` option which uses wine to run cross compiled
   windows tests on non-windows hosts
 * add `-Denable-qemu` option which uses qemu to run cross compiled
   foreign architecture tests
 * add `-Denable-foreign-glibc=path` option which combined with
   `-Denable-qemu` enables running cross compiled tests that link
   against glibc. See
   https://github.com/ziglang/zig/wiki/Updating-libc#glibc for how to
   produce this directory.
 * the test matrix is done manually. release test builds are only
   enabled by default for the native target. this should save us some CI
   time, while still providing decent coverage of release builds.
   - add test coverage for `x86_64-linux-musl -lc` (building musl libc)
   - add test coverage for `x86_64-linux-gnu -lc` (building glibc)
   - add test coverage for `aarch64v8_5a-linux-none`
   - add test coverage for `aarch64v8_5a-linux-musl -lc` (building musl libc)
   - add test coverage for `aarch64v8_5a-linux-gnu -lc` (building glibc)
   - add test coverage for `arm-linux-none`
   - test coverage for `arm-linux-musleabihf -lc` (building musl libc) is
     disabled due to #3286
   - test coverage for `arm-linux-gnueabihf -lc` (building glibc) is disabled
     due to #3287
   - test coverage for `x86_64-windows-gnu -lc` (building mingw-w64) is
     disabled due to #3285
 * enable qemu testing on the Linux CI job. There's not really a good
   reason to enable wine, since we have a Windows CI job as well.
 * remove the no longer needed `--build-file ../build.zig` from CI
   scripts
 * fix bug in glibc compilation where it wasn't properly reading the abi
   list txt files, resulting in "key not found" error.
 * std.build.Target gains:
   - isNetBSD
   - isLinux
   - osRequiresLibC
   - getArchPtrBitWidth
   - getExternalExecutor
 * zig build system gains support for enabling wine and enabling qemu.
   `artifact.enable_wine = true;`, `artifact.enable_qemu = true;`. This
   communicates that the system has these tools installed and the build
   system will use them to run tests.
 * zig build system gains support for overriding the dynamic linker of
   an executable artifact.
 * fix std.c.lseek prototype. makes behavior tests for
   arm-linux-musleabihf pass.
 * disable std lib tests that are failing on ARM. See #3288, #3289
 * provide `std.os.off_t`.
 * disable some of the compiler_rt symbols for arm 32 bit. Fixes
   compiler_rt tests for arm 32 bit
 * add __stack_chk_guard when linking against glibc. Fixes std lib tests
   for aarch64-linux-gnu
 * workaround for "unable to inline function" using `@inlineCall`. Fixes
   compiler_rt tests for arm 32 bit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Observed behavior contradicts documented or intended behavior os-windows
Projects
None yet
Development

No branches or pull requests

1 participant