removed duplicated linked libraries for darwin

This commit is contained in:
Antonio Linares
2025-10-04 08:54:21 +02:00
parent d677cbb1e9
commit a868adf053
2 changed files with 41 additions and 2 deletions

View File

@@ -1843,6 +1843,17 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
hbmk[ _HBMK_cCCEXT ] := ".exe"
#endif
/* Apply platform-specific library fixes */
IF hbmk[ _HBMK_cPLAT ] == "darwin"
/* On macOS, remove duplicate 'hbrdd' since ld warns about duplicate libraries and doesn't support lib grouping */
IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10
aLIB_BASE_RDD := { "hbrdd", "hbusrrdd", "rddntx", "rddcdx", "rddfpt", "hbhsx", "hbsix" }
ELSE
aLIB_BASE_RDD := { "hbrdd", "hbuddall", "hbusrrdd", "rddntx", "rddcdx", "rddnsx", "rddfpt", "hbhsx", "hbsix" }
ENDIF
aLIB_BASE_RDD_MT := aLIB_BASE_RDD
ENDIF
/* Setup platform dependent data */
cBin_CompPRG := "harbour" + l_cHBSUFFIX
@@ -4180,7 +4191,12 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB} {LF}" )
AAdd( hbmk[ _HBMK_aOPTD ], "{LL} {LB} {LF}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
IF hbmk[ _HBMK_cPLAT ] == "darwin"
/* On macOS, ld can handle circular dependencies without duplicates and warns about duplicate libraries */
l_aLIBHBBASE_2 := {}
ELSE
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
ENDIF
IF hbmk[ _HBMK_cPLAT ] == "darwin"
/* Leave space for later modifying .dylib paths using `install_name_tool`.
@@ -4549,7 +4565,13 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
ELSE
AAdd( hbmk[ _HBMK_aOPTL ], "{LL} {LB} {LF}" )
AAdd( hbmk[ _HBMK_aOPTD ], "{LL} {LB} {LF}" )
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
IF hbmk[ _HBMK_cPLAT ] == "darwin"
/* On macOS, ld warns about duplicate libraries, so we skip the duplicate base libs
since macOS ld can handle circular dependencies without explicit grouping */
l_aLIBHBBASE_2 := {}
ELSE
l_aLIBHBBASE_2 := iif( hbmk[ _HBMK_lMT ], aLIB_BASE_2_MT, aLIB_BASE_2 )
ENDIF
ENDIF
IF hbmk[ _HBMK_lSTRIP ]
IF hbmk[ _HBMK_lCreateLib ]