From b8ce5dfe1c2a8fc0e9f75fa46ef5ef4f682c2388 Mon Sep 17 00:00:00 2001 From: John Ericson <John.Ericson@Obsidian.Systems> Date: Fri, 22 Sep 2023 20:20:11 -0400 Subject: [PATCH] Define `TABLES_NEXT_TO_CODE` in the RTS configure We create a new cabal flag to facilitate this. --- configure.ac | 3 --- hadrian/src/Settings/Packages.hs | 9 +++++---- rts/configure.ac | 7 +++++++ rts/rts.cabal | 2 ++ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 480dba29c48a..b593fbe32e78 100644 --- a/configure.ac +++ b/configure.ac @@ -298,9 +298,6 @@ dnl ** Do a build with tables next to code? dnl -------------------------------------------------------------- GHC_TABLES_NEXT_TO_CODE -if test x"$TablesNextToCode" = xYES; then - AC_DEFINE([TABLES_NEXT_TO_CODE], [1], [Define to 1 if info tables are laid out next to code]) -fi AC_SUBST(TablesNextToCode) # Requires FPTOOLS_SET_PLATFORMS_VARS to be run first. diff --git a/hadrian/src/Settings/Packages.hs b/hadrian/src/Settings/Packages.hs index 4dba22765993..700e76c508a7 100644 --- a/hadrian/src/Settings/Packages.hs +++ b/hadrian/src/Settings/Packages.hs @@ -281,8 +281,8 @@ rtsPackageArgs = package rts ? do targetArch <- queryTarget queryArch targetOs <- queryTarget queryOS targetVendor <- queryTarget queryVendor - ghcUnreg <- yesNo <$> queryTarget tgtUnregisterised - ghcEnableTNC <- yesNo <$> queryTarget tgtTablesNextToCode + ghcUnreg <- queryTarget tgtUnregisterised + ghcEnableTNC <- queryTarget tgtTablesNextToCode rtsWays <- getRtsWays way <- getWay path <- getBuildPath @@ -355,8 +355,8 @@ rtsPackageArgs = package rts ? do , "-DTargetArch=" ++ show targetArch , "-DTargetOS=" ++ show targetOs , "-DTargetVendor=" ++ show targetVendor - , "-DGhcUnregisterised=" ++ show ghcUnreg - , "-DTablesNextToCode=" ++ show ghcEnableTNC + , "-DGhcUnregisterised=" ++ show (yesNo ghcUnreg) + , "-DTablesNextToCode=" ++ show (yesNo ghcEnableTNC) , "-DRtsWay=\"rts_" ++ show way ++ "\"" ] @@ -414,6 +414,7 @@ rtsPackageArgs = package rts ? do , flag UseLibzstd `cabalFlag` "libzstd" , flag StaticLibzstd `cabalFlag` "static-libzstd" , queryTargetTarget tgtSymbolsHaveLeadingUnderscore `cabalFlag` "leading-underscore" + , ghcEnableTNC `cabalFlag` "tables-next-to-code" , Debug `wayUnit` way `cabalFlag` "find-ptr" ] , builder (Cabal Setup) ? mconcat diff --git a/rts/configure.ac b/rts/configure.ac index 7fa68dd5c1fb..378d70e95ed8 100644 --- a/rts/configure.ac +++ b/rts/configure.ac @@ -50,6 +50,13 @@ fi AC_CANONICAL_BUILD AC_CANONICAL_HOST +dnl ** Do a build with tables next to code? +dnl -------------------------------------------------------------- + +AS_IF( + [test "$CABAL_FLAG_tables_next_to_code" = 1], + [AC_DEFINE([TABLES_NEXT_TO_CODE], [1], [Define to 1 if info tables are laid out next to code])]) + dnl detect compiler (prefer gcc over clang) and set $CC (unless CC already set), dnl later CC is copied to CC_STAGE{1,2,3} AC_PROG_CC([cc gcc clang]) diff --git a/rts/rts.cabal b/rts/rts.cabal index 73b39bd7ca32..97ff7d302f5c 100644 --- a/rts/rts.cabal +++ b/rts/rts.cabal @@ -54,6 +54,8 @@ flag static-libzstd default: False flag leading-underscore default: False +flag tables-next-to-code + default: False flag smp default: True flag find-ptr -- GitLab