+2002-01-21 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
+ (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
+ (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
+ (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
+ (ENDFILE_SPEC): Undefine.
+ (STARTFILE_SPEC): Redefine for PA.
+
2002-01-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
/* Definitions of target machine for GNU compiler, for HPs running
HPUX using the 64bit runtime model.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GNU CC.
#ifndef CROSS_COMPILE
#undef MD_EXEC_PREFIX
-#define MD_EXEC_PREFIX "/opt/langtools/bin"
+#define MD_EXEC_PREFIX "/usr/ccs/bin"
#endif
-/* Under hpux11 the normal location of the various *crt*.o files is the
- /usr/ccs/lib directory. */
+/* Under hpux11 the normal location of the various pa20_64 *crt*.o files
+ is the /usr/ccs/lib/pa20_64 directory. Some files may also be in the
+ /opt/langtools/lib/pa20_64 directory. */
#ifndef CROSS_COMPILE
#undef MD_STARTFILE_PREFIX
-#define MD_STARTFILE_PREFIX "/opt/langtools/lib/pa20_64/"
+#define MD_STARTFILE_PREFIX "/usr/ccs/lib/pa20_64/"
+#endif
+
+#ifndef CROSS_COMPILE
+#undef MD_STARTFILE_PREFIX_1
+#define MD_STARTFILE_PREFIX_1 "/opt/langtools/lib/pa20_64/"
#endif
/* hpux11 has the new HP assembler. It's still lousy, but it's a whole lot
The definitions say how to change sections to the .init and .fini
sections. This is the same for all known svr4 assemblers. */
-/* ??? For the time being, we aren't using init sections. */
+/* For the time being, we aren't using init sections. `P' relocations
+ are currently used for function references. However, P relocations are
+ treated as data references and data references are bound by dld.sl
+ immediately at program startup. This causes an abort due to undefined
+ weak symbols in crtbegin.o (e.g., __register_frame_info). Possibly
+ Q relocations might avoid this problem but the GNU assembler doesn't
+ support them. */
#if 0
#define INIT_SECTION_ASM_OP "\t.section\t.init"
#define FINI_SECTION_ASM_OP "\t.section\t.fini"
+#else
+#define EH_FRAME_IN_DATA_SECTION 1
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC ""
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "%{!shared: \
+ %{!symbolic: \
+ %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}}"
#endif
/* A default list of other sections which we might be "in" at any given