Skip to content

GhcEnableTablesNextToCode=NO breaks NCG on macOS

It appears as if GhcEnableTablesNextToCode=NO breaks the NCG on macOS as early as GHC 8.4.

Running the following

git reset --hard HEAD
git clean -xfd
git submodule update --init --recursive
git clean -xfd
sed -E "s/^#BuildFlavour[ ]+= quick-cross$/BuildFlavour = quick/" < mk/build.mk.sample > mk/build.mk
echo "GhcEnableTablesNextToCode=NO" >> mk/build.mk
./boot && ./configure --silent && make -s -j9

on macOS with the 8.4 and 8.6 generated duplicate symbols in the assembly file.

Something like

.text
.align 3
Lc4l:
Lc4l:
        jmp Lc4u
.const_data
.align 3
.align 0
_Lc4l_info:
        .quad   Lc4l
        .quad   259
        .long   30
        .long   0

which causes the assembler to choke.

Trac metadata
Trac field Value
Version 8.6.3
Type Bug
TypeOfFailure OtherFailure
Priority high
Resolution Unresolved
Component Compiler (CodeGen)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC bgamari, carter, terrorjack
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information