Skip to content
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

Fix gdc build and test failures #2795

Merged
merged 2 commits into from
Jan 13, 2024
Merged

Fix gdc build and test failures #2795

merged 2 commits into from
Jan 13, 2024

Conversation

the-horo
Copy link
Contributor

No description provided.

Having `-preview=in` in dflags without a platform specification
leads to errors with gdc:
```
gdc: error: unrecognized command-line option ‘-preview=in’; did you mean ‘-fpreview=in’?
```

However, using the proper `-fpreview=in` for gdc causes an ICE:
```
/usr/lib/gcc/x86_64-pc-linux-gnu/13/include/d/std/math/exponential.d:587:30: internal compiler error: in layout_aggregate_type, at d/types.cc:562
  587 |             enum maxOdd = pow(2.0L, real.mant_dig) - 1.0L;
```

Leave `-preview=in` enabled for dmd and ldc and wait for a fix
before enabling it for gdc.

Signed-off-by: Andrei Horodniceanu <[email protected]>
Gdc doesn't support `#include`s in importC

Signed-off-by: Andrei Horodniceanu <[email protected]>
Copy link

github-actions bot commented Jan 13, 2024

✅ PR OK, no changes in deprecations or warnings

Total deprecations: 0

Total warnings: 0

Build statistics:

 statistics (-before,  after)
 executable size=5228376 bin/dub
-rough build time=62s
 rough build time=61s
Full build output
DUB version 1.35.1, built on Jan  6 2024
LDC - the LLVM D compiler (1.36.0):
  based on DMD v2.106.1 and LLVM 17.0.6
  built with LDC - the LLVM D compiler (1.36.0)
  Default target: x86_64-unknown-linux-gnu
  Host CPU: znver3
  http://dlang.org - http://wiki.dlang.org/LDC


  Registered Targets:
    aarch64     - AArch64 (little endian)
    aarch64_32  - AArch64 (little endian ILP32)
    aarch64_be  - AArch64 (big endian)
    amdgcn      - AMD GCN GPUs
    arm         - ARM
    arm64       - ARM64 (little endian)
    arm64_32    - ARM64 (little endian ILP32)
    armeb       - ARM (big endian)
    avr         - Atmel AVR Microcontroller
    bpf         - BPF (host endian)
    bpfeb       - BPF (big endian)
    bpfel       - BPF (little endian)
    hexagon     - Hexagon
    lanai       - Lanai
    loongarch32 - 32-bit LoongArch
    loongarch64 - 64-bit LoongArch
    mips        - MIPS (32-bit big endian)
    mips64      - MIPS (64-bit big endian)
    mips64el    - MIPS (64-bit little endian)
    mipsel      - MIPS (32-bit little endian)
    msp430      - MSP430 [experimental]
    nvptx       - NVIDIA PTX 32-bit
    nvptx64     - NVIDIA PTX 64-bit
    ppc32       - PowerPC 32
    ppc32le     - PowerPC 32 LE
    ppc64       - PowerPC 64
    ppc64le     - PowerPC 64 LE
    r600        - AMD GPUs HD2XXX-HD6XXX
    riscv32     - 32-bit RISC-V
    riscv64     - 64-bit RISC-V
    sparc       - Sparc
    sparcel     - Sparc LE
    sparcv9     - Sparc V9
    spirv32     - SPIR-V 32-bit
    spirv64     - SPIR-V 64-bit
    systemz     - SystemZ
    thumb       - Thumb
    thumbeb     - Thumb (big endian)
    ve          - VE
    wasm32      - WebAssembly 32-bit
    wasm64      - WebAssembly 64-bit
    x86         - 32-bit X86: Pentium-Pro and above
    x86-64      - 64-bit X86: EM64T and AMD64
    xcore       - XCore
   Upgrading project in /home/runner/work/dub/dub/
    Starting Performing "release" build using /opt/hostedtoolcache/dc/ldc2-1.36.0/x64/ldc2-1.36.0-linux-x86_64/bin/ldc2 for x86_64.
    Building dub 1.36.0-beta.1 commit.38.g7258a664: building configuration [application]
     Linking dub
STAT:statistics (-before,  after)
STAT:executable size=5228376 bin/dub
STAT:rough build time=61s

@Geod24 Geod24 merged commit d529b1b into dlang:master Jan 13, 2024
30 checks passed
@ibuclaw
Copy link
Member

ibuclaw commented Jan 15, 2024

Are there bug reports?

@the-horo
Copy link
Contributor Author

@ibuclaw I suppose you refer to the ICE.

Here's what I get when trying to compile dub (using a manual command because of -Werror causing the build to fail sooner):

% gdc @build-files.txt -o bin/dub -fversion=DubUseCurl -fversion=DubApplication -I source  -fpreview=in  -freport-bug
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/d/std/math/exponential.d:587:30: internal compiler error: in layout_aggregate_type, at d/types.cc:562
  587 |             enum maxOdd = pow(2.0L, real.mant_dig) - 1.0L;
      |                              ^
0x7fcb9ab102df __libc_start_call_main
        ../sysdeps/nptl/libc_start_call_main.h:58
0x7fcb9ab10398 __libc_start_main_impl
        ../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.

Looking at https://gcc.gnu.org/bugzilla I found https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112285 and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112290 which both have small reproducers and have a similar setup to the dub build failure, -fpreview=in causing an ICE.

I don't know how to minimize such an error, nor do I have the time right now to do it, so all I did was remove the flag and add a comment saying why it was removed.
I though that it was better to have those 2 bugs solved and see if the error persists in dub rather then opening a new issue that just said "dub fails to build with -fpreview=in".

I'm pretty new to this so, if you think my reasoning wasn't right, I will accept it and try not to do it in the future :)

@ibuclaw
Copy link
Member

ibuclaw commented Mar 8, 2024

@ibuclaw I suppose you refer to the ICE.

Here's what I get when trying to compile dub (using a manual command because of -Werror causing the build to fail sooner):

% gdc @build-files.txt -o bin/dub -fversion=DubUseCurl -fversion=DubApplication -I source  -fpreview=in  -freport-bug
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/d/std/math/exponential.d:587:30: internal compiler error: in layout_aggregate_type, at d/types.cc:562
  587 |             enum maxOdd = pow(2.0L, real.mant_dig) - 1.0L;
      |                              ^
0x7fcb9ab102df __libc_start_call_main
        ../sysdeps/nptl/libc_start_call_main.h:58
0x7fcb9ab10398 __libc_start_main_impl
        ../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.

Looking at https://gcc.gnu.org/bugzilla I found https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112285 and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112290 which both have small reproducers and have a similar setup to the dub build failure, -fpreview=in causing an ICE.

It's probably PR11285 then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants