From 12c7927e8824abd787c029504cc09ba06d7ec20e Mon Sep 17 00:00:00 2001 From: "Darryl L. Miles" Date: Mon, 20 Jul 2026 12:03:14 +0100 Subject: [PATCH] Makefile: LD_FIRST_LIBS high-priority lib order conf control point --- ext2sim/Makefile | 4 ++-- magic/Makefile | 2 +- scripts/configure.in | 2 ++ scripts/defs.mak.in | 1 + tcltk/Makefile | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ext2sim/Makefile b/ext2sim/Makefile index b1816314..69e5e60f 100644 --- a/ext2sim/Makefile +++ b/ext2sim/Makefile @@ -19,7 +19,7 @@ tcl-main: exttosim${SHDLIB_EXT} # Not linkable due to libutils.a needing more hierarchical separation ext2sim_main: ext2sim_main.o ${EXTRA_LIBS} ${MAGICDIR}/tiles/libtiles.o - ${CC} ${LDFLAGS} ${CFLAGS} -o $@ $^ ${LIBS} -lX11 -lz + ${CC} ${LDFLAGS} ${CFLAGS} -o $@ $^ ${LD_FIRST_LIBS} ${LIBS} -lX11 -lz ext2sim_main.o: ext2sim.c ${CC} ${CFLAGS} -I${MAGICDIR} -DEXT2SIM_MAIN -c -o $@ $^ @@ -34,7 +34,7 @@ exttosim${SHDLIB_EXT}: simwrap.o ${MAGICDIR}/extflat/libextflat.o @echo --- making exttosim Tcl library \(exttosim${SHDLIB_EXT}\) ${RM} exttosim${SHDLIB_EXT} ${CC} ${CFLAGS} ${CPPFLAGS} -o $@ ${LDDL_FLAGS} simwrap.o \ - ${MAGICDIR}/extflat/libextflat.o ${LD_SHARED} -lc ${LIBS} + ${MAGICDIR}/extflat/libextflat.o ${LD_SHARED} ${LD_FIRST_LIBS} -lc ${LIBS} install: $(DESTDIR)${INSTALL_BINDIR}/${MODULE}${EXEEXT} diff --git a/magic/Makefile b/magic/Makefile index cb147b1e..663946d6 100644 --- a/magic/Makefile +++ b/magic/Makefile @@ -77,7 +77,7 @@ tclmagic${SHDLIB_EXT}: ${EXTRA_LIBS} @echo --- making magic Tcl library \(tclmagic${SHDLIB_EXT}\) ${RM} tclmagic${SHDLIB_EXT} ${CC} ${CFLAGS} ${CPPFLAGS} -o $@ ${LDDL_FLAGS} ${LD_RUN_PATH} \ - ${EXTRA_LIBS} ${LD_EXTRA_LIBS} \ + ${LD_FIRST_LIBS} ${EXTRA_LIBS} ${LD_EXTRA_LIBS} \ -lc ${LIBS} ${LIB_SPECS} ${LDFLAGS} proto.magicrc: proto.magicrc.in diff --git a/scripts/configure.in b/scripts/configure.in index e2326fef..afd85cf4 100644 --- a/scripts/configure.in +++ b/scripts/configure.in @@ -316,6 +316,7 @@ cadinstall="" extra_libs="" top_extra_libs="" sub_extra_libs="" +ld_first_libs="" ld_extra_libs="" ld_extra_objs="" programs="" @@ -1920,6 +1921,7 @@ AC_SUBST(extra_defs) AC_SUBST(stub_defs) AC_SUBST(DEBUG_defs) AC_SUBST(NDEBUG_defs) +AC_SUBST(ld_first_libs) AC_SUBST(ld_extra_libs) AC_SUBST(ld_extra_objs) AC_SUBST(top_extra_libs) diff --git a/scripts/defs.mak.in b/scripts/defs.mak.in index 72c99dcf..bbc37758 100755 --- a/scripts/defs.mak.in +++ b/scripts/defs.mak.in @@ -42,6 +42,7 @@ INSTALL_SCMDIR = ${INSTALL_LIBDIR}/magic/scm INSTALL_TCLDIR = ${INSTALL_LIBDIR}/magic/tcl MAIN_EXTRA_LIBS = @extra_libs@ +LD_FIRST_LIBS = @ld_first_libs@ LD_EXTRA_LIBS = @ld_extra_libs@ LD_SHARED = @ld_extra_objs@ TOP_EXTRA_LIBS = @top_extra_libs@ diff --git a/tcltk/Makefile b/tcltk/Makefile index 372ecdd7..451e0866 100644 --- a/tcltk/Makefile +++ b/tcltk/Makefile @@ -63,12 +63,12 @@ install-tcl: magicexec magicdnull ${BIN_FILES} ${TCL_FILES} magicexec: magicexec.c ${MAGICDIR}/defs.mak ${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS_NOSTUB} ${LDFLAGS} magicexec.c \ - -o magicexec ${LD_RUN_PATH} ${LIB_SPECS_NOSTUB} ${ZLIB_FLAG} \ + -o magicexec ${LD_RUN_PATH} ${LD_FIRST_LIBS} ${LIB_SPECS_NOSTUB} ${ZLIB_FLAG} \ ${LIBS} ${GR_LIBS} magicdnull: magicdnull.c ${MAGICDIR}/defs.mak ${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS_NOSTUB} ${LDFLAGS} magicdnull.c \ - -o magicdnull ${LD_RUN_PATH} ${LIB_SPECS_GRNULL} ${ZLIB_FLAG} \ + -o magicdnull ${LD_RUN_PATH} ${LD_FIRST_LIBS} ${LIB_SPECS_GRNULL} ${ZLIB_FLAG} \ ${LIBS} magic.tcl: magic.tcl.in ${MAGICDIR}/defs.mak ${MAGICDIR}/VERSION