From 7797f1993463a8e68704cf7e5ed5a9c68b536d6d Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 9 Aug 2000 10:33:22 +0000 Subject: On port-hpcmips-ja@jp.netbsd.org: shin@sm.sony.co.jp <10007180619.AA00274@lachesis.sm.sony.co.jp> tsutsui@ceres.dti.ne.jp <200008031537.e73Fb0S25554@mirage.ceres.dti.ne.jp> the pkgsrc cross linker did not know -nostdlib option,and -nostdlib option works such as -n option. -n is NMAGIC output option. this misunderstanding makes bad alignment and bad address dynamic-linked binary. cf. On ftp://ftp.netbsd.org/pub/NetBSD/arch/hpcmips/snapshot/20000620-1.5, dynamic-linked binary is almost broken. --- cross/binutils/patches/patch-am | 116 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 cross/binutils/patches/patch-am (limited to 'cross/binutils') diff --git a/cross/binutils/patches/patch-am b/cross/binutils/patches/patch-am new file mode 100644 index 00000000000..22f2910e2c4 --- /dev/null +++ b/cross/binutils/patches/patch-am @@ -0,0 +1,116 @@ +$NetBSD: patch-am,v 1.1 2000/08/09 10:33:22 jun Exp $ +diff -cr ld.org/ld.h ld/ld.h +*** ld.org/ld.h Sat May 2 00:48:48 1998 +--- ld/ld.h Fri Aug 4 22:51:58 2000 +*************** +*** 117,122 **** +--- 117,125 ---- + /* If true, doing a dynamic link. */ + boolean dynamic_link; + ++ /* If true, do not use SEARCH_DIR directives from the linker script. */ ++ boolean no_std_path; ++ + /* If true, build constructors. */ + boolean build_constructors; + +Only in ld: ld.h.orig +diff -cr ld.org/ldgram.y ld/ldgram.y +*** ld.org/ldgram.y Sat May 2 00:48:49 1998 +--- ld/ldgram.y Fri Aug 4 22:52:00 2000 +*************** +*** 295,301 **** + | TARGET_K '(' NAME ')' + { lang_add_target($3); } + | SEARCH_DIR '(' filename ')' +! { ldfile_add_library_path ($3, false); } + | OUTPUT '(' filename ')' + { lang_add_output($3, 1); } + | OUTPUT_FORMAT '(' NAME ')' +--- 295,301 ---- + | TARGET_K '(' NAME ')' + { lang_add_target($3); } + | SEARCH_DIR '(' filename ')' +! { if (!config.no_std_path) ldfile_add_library_path ($3, false); } + | OUTPUT '(' filename ')' + { lang_add_output($3, 1); } + | OUTPUT_FORMAT '(' NAME ')' +Only in ld: ldgram.y.orig +diff -cr ld.org/ldmain.c ld/ldmain.c +*** ld.org/ldmain.c Sat May 2 00:48:49 1998 +--- ld/ldmain.c Fri Aug 4 22:52:02 2000 +*************** +*** 188,193 **** +--- 188,194 ---- + whole_archive = false; + config.build_constructors = true; + config.dynamic_link = false; ++ config.no_std_path = (getenv("LD_NOSTD_PATH") ? true : false); + command_line.force_common_definition = false; + command_line.interpreter = NULL; + command_line.rpath = NULL; +Only in ld: ldmain.c.orig +diff -cr ld.org/lexsup.c ld/lexsup.c +*** ld.org/lexsup.c Sat May 2 00:48:49 1998 +--- ld/lexsup.c Fri Aug 4 22:52:05 2000 +*************** +*** 111,116 **** +--- 111,117 ---- + #define OPTION_WHOLE_ARCHIVE (OPTION_SPLIT_BY_FILE + 1) + #define OPTION_WRAP (OPTION_WHOLE_ARCHIVE + 1) + #define OPTION_FORCE_EXE_SUFFIX (OPTION_WRAP + 1) ++ #define OPTION_NO_STD_PATH (OPTION_FORCE_EXE_SUFFIX + 16) + + /* The long options. This structure is used for both the option + parsing and the help text. */ +*************** +*** 266,271 **** +--- 267,274 ---- + '\0', NULL, "Create an output file even if errors occur", TWO_DASHES }, + { {"noinhibit_exec", no_argument, NULL, OPTION_NOINHIBIT_EXEC}, + '\0', NULL, NULL, NO_HELP }, ++ { {"nostdlib", no_argument, NULL, OPTION_NO_STD_PATH}, /* NetBSD. */ ++ '\0', NULL, "Do not use default library search path", ONE_DASH }, + { {"oformat", required_argument, NULL, OPTION_OFORMAT}, + '\0', "TARGET", "Specify target of output file", TWO_DASHES }, + { {"qmagic", no_argument, NULL, OPTION_IGNORE}, +*************** +*** 283,289 **** + '\0', "PATH", "Set link time shared library search path", ONE_DASH }, + { {"shared", no_argument, NULL, OPTION_SHARED}, + '\0', NULL, "Create a shared library", ONE_DASH }, +! { {"Bshareable", no_argument, NULL, OPTION_SHARED }, /* FreeBSD. */ + '\0', NULL, NULL, ONE_DASH }, + { {"sort-common", no_argument, NULL, OPTION_SORT_COMMON}, + '\0', NULL, "Sort common symbols by size", TWO_DASHES }, +--- 286,292 ---- + '\0', "PATH", "Set link time shared library search path", ONE_DASH }, + { {"shared", no_argument, NULL, OPTION_SHARED}, + '\0', NULL, "Create a shared library", ONE_DASH }, +! { {"Bshareable", no_argument, NULL, OPTION_SHARED }, /* FreeBSD, NetBSD. */ + '\0', NULL, NULL, ONE_DASH }, + { {"sort-common", no_argument, NULL, OPTION_SORT_COMMON}, + '\0', NULL, "Sort common symbols by size", TWO_DASHES }, +*************** +*** 327,332 **** +--- 330,337 ---- + TWO_DASHES }, + { {"whole-archive", no_argument, NULL, OPTION_WHOLE_ARCHIVE}, + '\0', NULL, "Include all objects from following archives", TWO_DASHES }, ++ { {"Bforcearchive", no_argument, NULL, OPTION_WHOLE_ARCHIVE }, /* NetBSD. */ ++ '\0', NULL, NULL, ONE_DASH }, + { {"wrap", required_argument, NULL, OPTION_WRAP}, + '\0', "SYMBOL", "Use wrapper functions for SYMBOL", TWO_DASHES } + }; +*************** +*** 580,585 **** +--- 585,593 ---- + break; + case OPTION_NO_KEEP_MEMORY: + link_info.keep_memory = false; ++ break; ++ case OPTION_NO_STD_PATH: ++ config.no_std_path = true; + break; + case OPTION_NO_WARN_MISMATCH: + command_line.warn_mismatch = false; -- cgit v1.2.3