From 0fc4f69d1ed055266896b784b417cd0cbbcabbb4 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 22 Mar 2019 11:55:24 -0600 Subject: [PATCH] cs: add needed header space for Mac OS executables --- racket/collects/compiler/private/mach-o.rkt | 4 ++-- racket/src/cs/c/Makefile.in | 4 ++-- racket/src/cs/c/configure | 1 + racket/src/cs/c/configure.ac | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/racket/collects/compiler/private/mach-o.rkt b/racket/collects/compiler/private/mach-o.rkt index ee660ae5f7..ac3dca9f09 100644 --- a/racket/collects/compiler/private/mach-o.rkt +++ b/racket/collects/compiler/private/mach-o.rkt @@ -262,8 +262,8 @@ (+ link-edit-addr (round-up-page link-edit-vmlen)))]) (unless ((+ end-cmd new-cmd-sz) . < . min-used) (error 'check-header - "no room for a new section load command (current end is ~a; min used is ~a)" - end-cmd min-used)) + "no room for a new section load command (current end is ~a; min used is ~a; need ~a)" + end-cmd min-used new-cmd-sz)) ;; Shift commands starting with link-edit command: (unless link-edit-pos (error "LINKEDIT not found")) (file-position p link-edit-pos) diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 5d70268194..eede28b852 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -213,7 +213,7 @@ RKTFW = $(RKTFWDIR)/Racket GRAPPSKEL = GRacketCS.app/Contents/Info.plist racketcs@OSX@: main.o $(RKTFW) - $(CC) $(CFLAGS) -o racketcs main.o -F. -framework Racket + $(CC) $(CFLAGS) -o racketcs main.o -F. -framework Racket $(LDFLAGS) /usr/bin/install_name_tool -change "Racket.framework/Versions/$(FWVERSION)_CS/Racket" "@executable_path/Racket.framework/Versions/$(FWVERSION)_CS/Racket" racketcs GRACKET_BIN = GRacketCS.app/Contents/MacOS/GracketCS @@ -222,7 +222,7 @@ gracketcs@OSX@: $(MAKE) $(GRACKET_BIN) $(GRACKET_BIN): grmain.o $(RKTFW) $(GRAPPSKEL) - $(CC) $(CFLAGS) -o $(GRACKET_BIN) grmain.o -F. -framework Racket + $(CC) $(CFLAGS) -o $(GRACKET_BIN) grmain.o -F. -framework Racket $(LDFLAGS) /usr/bin/install_name_tool -change "Racket.framework/Versions/$(FWVERSION)_CS/Racket" "@executable_path/../../../Racket.framework/Versions/$(FWVERSION)_CS/Racket" $(GRACKET_BIN) $(GRAPPSKEL): $(srcdir)/../../mac/osx_appl.rkt $(srcdir)/../../racket/src/schvers.h $(srcdir)/../../mac/icon/GRacket.icns diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index 2204c0c069..0739996a76 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -3909,6 +3909,7 @@ case "$host_os" in PREFLAGS="$PREFLAGS -DOS_X" MACH_OS=osx LIBS="${LIBS} -lncurses -framework CoreFoundation" + LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names" if test "${enable_xonx}" == "no" ; then INCLUDEDEP="-include" OSX="" diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index 648ae6dedb..5b6871556e 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -215,6 +215,7 @@ case "$host_os" in PREFLAGS="$PREFLAGS -DOS_X" MACH_OS=osx LIBS="${LIBS} -lncurses -framework CoreFoundation" + LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names" if test "${enable_xonx}" == "no" ; then INCLUDEDEP="-include" OSX=""