From 63126683dbcf3ac507c3afd20ecbce88fb6e0fa4 Mon Sep 17 00:00:00 2001 From: David Caldwell Date: Sun, 21 Sep 2014 22:35:22 +0200 Subject: * configure.ac: Increase headerpad_extra to 1000, update the comment about load commands. * src/unexmacosx.c (dump_it): Improve error message. Fixes: debbugs:18505 --- ChangeLog | 5 +++++ configure.ac | 10 ++++++---- src/ChangeLog | 4 ++++ src/unexmacosx.c | 4 +++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index b1951aa6c71..bffcbbab445 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-09-21 Jan Djärv + + * configure.ac: Increase headerpad_extra to 1000, update the comment + about load commands (Bug#18505). + 2014-09-13 Eli Zaretskii * configure.ac (HAVE_SOUND): Check for mmsystem.h header that diff --git a/configure.ac b/configure.ac index f05c14a319c..0102551ece5 100644 --- a/configure.ac +++ b/configure.ac @@ -4859,17 +4859,19 @@ case "$opsys" in darwin) ## The -headerpad option tells ld (see man page) to leave room at the ## end of the header for adding load commands. Needed for dumping. - ## 0x690 is the total size of 30 segment load commands (at 56 - ## each); under Cocoa 31 commands are required. + ## 0x1000 is enough for roughly 52 load commands on the x86_64 + ## architecture (where they are 78 bytes each). The actual number of + ## load commands added is not consistent but normally ranges from + ## about 14 to about 34. Setting it high gets us plenty of slop and + ## only costs about 1.5K of wasted binary space. + headerpad_extra=1000 if test "$HAVE_NS" = "yes"; then libs_nsgui="-framework AppKit" if test "$NS_IMPL_COCOA" = "yes"; then libs_nsgui="$libs_nsgui -framework IOKit" fi - headerpad_extra=6C8 else libs_nsgui= - headerpad_extra=690 fi LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra" diff --git a/src/ChangeLog b/src/ChangeLog index ea4dde398a7..684de498522 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2014-09-21 David Caldwell (tiny change) + + * unexmacosx.c (dump_it): Improve error message. + 2014-09-18 Juri Linkov * image.c (imagemagick_load_image): Add delay to imagemagick metadata. diff --git a/src/unexmacosx.c b/src/unexmacosx.c index 8cd80a7a544..7d4762fdab2 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -1302,7 +1302,9 @@ dump_it (void) } if (curr_header_offset > text_seg_lowest_offset) - unexec_error ("not enough room for load commands for new __DATA segments"); + unexec_error ("not enough room for load commands for new __DATA segments" + " (increase headerpad_extra in configure.in to at least %lX)", + num_unexec_regions * sizeof (struct segment_command)); printf ("%ld unused bytes follow Mach-O header\n", text_seg_lowest_offset - curr_header_offset); -- cgit v1.2.1