summaryrefslogtreecommitdiff
path: root/cross
diff options
context:
space:
mode:
authorjun <jun>2000-08-09 10:33:22 +0000
committerjun <jun>2000-08-09 10:33:22 +0000
commitd6dd0f3fb9a90dd2a78bfa4eb30e4867864d2327 (patch)
tree8aad9d1bea4bbe2205dc6bef783f6a84b70b48d3 /cross
parent5da32bccd225782131dca924e39cc6502806efe2 (diff)
downloadpkgsrc-d6dd0f3fb9a90dd2a78bfa4eb30e4867864d2327.tar.gz
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.
Diffstat (limited to 'cross')
-rw-r--r--cross/binutils/patches/patch-am116
1 files changed, 116 insertions, 0 deletions
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;