Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC Commits: 94d8f83b by Cheng Shao at 2026-07-22T11:30:40-04:00 hadrian: clean up stale cabal package flags in the tree This patch cleans up stale cabal package flags in the tree and related hadrian/autoconf logic. Closes #27474. Co-authored-by: Codex <codex@openai.com> - - - - - 9 changed files: - configure.ac - distrib/configure.ac.in - hadrian/cfg/system.config.host.in - hadrian/cfg/system.config.target.in - hadrian/src/Oracles/Flag.hs - hadrian/src/Rules/Generate.hs - hadrian/src/Settings/Packages.hs - m4/fp_check_pthreads.m4 - rts/rts.cabal Changes: ===================================== configure.ac ===================================== @@ -894,10 +894,7 @@ dnl Keep that check as early as possible. dnl as we need to know whether we need libm dnl for math functions or not dnl (see https://gitlab.haskell.org/ghc/ghc/issues/3730) -AC_CHECK_LIB(m, atan, UseLibm=YES, UseLibm=NO) -AC_SUBST([UseLibm]) -TargetHasLibm=$UseLibm -AC_SUBST(TargetHasLibm) +AC_CHECK_LIB(m, atan, TargetHasLibm=YES, TargetHasLibm=NO) FP_BFD_FLAG AC_SUBST([UseLibbfd]) @@ -911,10 +908,6 @@ AC_SUBST(UseSystemLibFFI) AC_SUBST(FFILibDir) AC_SUBST(FFIIncludeDir) -dnl ** check whether we need -ldl to get dlopen() -AC_CHECK_LIB([dl], [dlopen], UseLibdl=YES, UseLibdl=NO) -AC_SUBST([UseLibdl]) - dnl ** check for leading underscores in symbol names FP_LEADING_UNDERSCORE AC_SUBST([LeadingUnderscore], [`echo $fptools_cv_leading_underscore | sed 'y/yesno/YESNO/'`]) @@ -923,9 +916,6 @@ dnl ** check for librt AC_CHECK_LIB([rt], [clock_gettime], UseLibrt=YES, UseLibrt=NO) AC_SUBST([UseLibrt]) -FP_CHECK_PTHREAD_LIB -AC_SUBST([UseLibpthread]) - GHC_ADJUSTORS_METHOD([Target]) AC_SUBST([UseLibffiForAdjustors]) ===================================== distrib/configure.ac.in ===================================== @@ -32,7 +32,6 @@ bootstrap_target=@TargetPlatform@ bootstrap_llvm_target=@LlvmTarget@ TargetHasLibm=@TargetHasLibm@ -AC_SUBST(TargetHasLibm) UseLibffiForAdjustors=@UseLibffiForAdjustors@ AC_SUBST(UseLibffiForAdjustors) ===================================== hadrian/cfg/system.config.host.in ===================================== @@ -58,10 +58,7 @@ libzstd-lib-dir = use-lib-zstd = NO static-lib-zstd = NO use-lib-numa = NO -use-lib-m = YES use-lib-rt = YES -use-lib-dl = YES use-lib-bfd = NO -use-lib-pthread = NO need-libatomic = NO ===================================== hadrian/cfg/system.config.target.in ===================================== @@ -64,10 +64,7 @@ libzstd-lib-dir = @LibZstdLibDir@ use-lib-zstd = @UseLibZstd@ static-lib-zstd = @UseStaticLibZstd@ use-lib-numa = @UseLibNuma@ -use-lib-m = @UseLibm@ use-lib-rt = @UseLibrt@ -use-lib-dl = @UseLibdl@ use-lib-bfd = @UseLibbfd@ -use-lib-pthread = @UseLibpthread@ need-libatomic = @NeedLibatomic@ ===================================== hadrian/src/Oracles/Flag.hs ===================================== @@ -33,13 +33,9 @@ data BuildFlag = CcLlvmBackend | UseLibnuma | UseLibzstd | StaticLibzstd - | UseLibm | UseLibrt - | UseLibdl | UseLibbfd - | UseLibpthread | NeedLibatomic - | TargetHasLibm parseFlagResult :: String -> String -> Bool parseFlagResult key value = @@ -70,13 +66,9 @@ buildFlag f st = UseLibnuma -> "use-lib-numa" UseLibzstd -> "use-lib-zstd" StaticLibzstd -> "static-lib-zstd" - UseLibm -> "use-lib-m" UseLibrt -> "use-lib-rt" - UseLibdl -> "use-lib-dl" UseLibbfd -> "use-lib-bfd" - UseLibpthread -> "use-lib-pthread" NeedLibatomic -> "need-libatomic" - TargetHasLibm -> "use-lib-m" in parseFlagResult key <$> (lookupStageBuildConfig key st) -- | Get a configuration setting. ===================================== hadrian/src/Rules/Generate.hs ===================================== @@ -440,7 +440,7 @@ bindistRules = do , interpolateSetting "ProjectVersion" ProjectVersion , interpolateVar "EnableDistroToolchain" $ interp (staged (lookupStageBuildConfig "settings-use-distro-mingw")) , interpolateVar "TablesNextToCode" $ yesNo <$> getTarget tgtTablesNextToCode - , interpolateVar "TargetHasLibm" $ yesNo <$> interp (staged (buildFlag TargetHasLibm)) + , interpolateVar "TargetHasLibm" $ yesNo <$> getTarget tgtHasLibm , interpolateVar "TargetPlatform" $ getTarget targetPlatformTriple , interpolateVar "BuildPlatform" $ interp $ queryBuild targetPlatformTriple , interpolateVar "HostPlatform" $ interp $ queryHost targetPlatformTriple ===================================== hadrian/src/Settings/Packages.hs ===================================== @@ -92,7 +92,6 @@ packageArgs = do -- target code, otherwise enable for stage2 since that runs on -- the target and can use target's own ghci object linker [ andM [expr (ghcWithInterpreter stage), orM [expr (notM cross), stage2]] `cabalFlag` "internal-interpreter" - , orM [ notM cross, haveCurses ] `cabalFlag` "terminfo" , arg "-build-tool-depends" , staged (buildFlag UseLibzstd) `cabalFlag` "with-libzstd" -- ROMES: While the boot compiler is not updated wrt -this-unit-id @@ -126,10 +125,6 @@ packageArgs = do ] ] - -------------------------------- ghcPkg -------------------------------- - , package ghcPkg ? - builder (Cabal Flags) ? orM [ notM cross, haveCurses ] `cabalFlag` "terminfo" - -------------------------------- ghcBoot ------------------------------ , package ghcBoot ? builder (Cabal Flags) ? (stage0 `cabalFlag` "bootstrap") @@ -408,12 +403,9 @@ rtsPackageArgs = package rts ? do , any (wayUnit Debug) rtsWays `cabalFlag` "debug" , any (wayUnit Dynamic) rtsWays `cabalFlag` "dynamic" , any (wayUnit Threaded) rtsWays `cabalFlag` "threaded" - , buildFlag UseLibm stage `cabalFlag` "libm" , buildFlag UseLibrt stage `cabalFlag` "librt" - , buildFlag UseLibdl stage `cabalFlag` "libdl" , useSystemFfi `cabalFlag` "use-system-libffi" , targetUseLibffiForAdjustors stage `cabalFlag` "libffi-adjustors" - , buildFlag UseLibpthread stage `cabalFlag` "need-pthread" , buildFlag UseLibbfd stage `cabalFlag` "libbfd" , buildFlag NeedLibatomic stage `cabalFlag` "need-atomic" , useLibdw stage `cabalFlag` "libdw" @@ -423,7 +415,6 @@ rtsPackageArgs = package rts ? do , queryTargetTarget stage tgtSymbolsHaveLeadingUnderscore `cabalFlag` "leading-underscore" , ghcUnreg `cabalFlag` "unregisterised" , ghcEnableTNC `cabalFlag` "tables-next-to-code" - , Debug `wayUnit` way `cabalFlag` "find-ptr" ] , builder (Cabal Setup) ? mconcat [ useLibdw stage ? cabalExtraDirs (fromMaybe "" libdwIncludeDir) (fromMaybe "" libdwLibraryDir) ===================================== m4/fp_check_pthreads.m4 ===================================== @@ -1,9 +1,6 @@ # FP_CHECK_PTHREAD_LIB # ---------------------------------- # Check whether -lpthread is needed for pthread. -# -# Sets variables: -# - UseLibpthread: [YES|NO] AC_DEFUN([FP_CHECK_PTHREAD_LIB], [ dnl Some platforms (e.g. Android's Bionic) have pthreads support available ===================================== rts/rts.cabal ===================================== @@ -64,9 +64,6 @@ flag tables-next-to-code flag smp default: True manual: True -flag find-ptr - default: False - manual: True -- Some cabal flags used to control the flavours we want to produce -- for libHSrts in hadrian. By default, we just produce vanilla and -- threaded. The flags "compose": if you enable debug and profiling, View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/94d8f83bb930dc5004d43e91b4e37fdb... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/94d8f83bb930dc5004d43e91b4e37fdb... You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help