This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
FreeBSD a.out patch for shared libs
- To: egcs at cygnus dot com
- Subject: FreeBSD a.out patch for shared libs
- From: Ollivier Robert <roberto at keltia dot freenix dot fr>
- Date: Thu, 29 Jan 1998 00:50:40 +0100
- Cc: pcg at goof dot com
Hello,
The following patch -- already present in the gcc 2.7.2.1 in FreeBSD --
enables building of a.out shared libs under FreeBSD. It is needed because
we have some rather ancient versions of as/ld (soon to be replaced by ELF
ones -- hopefully for 3.0).
egcs/pgcc as cross-compiler to ELF (i386-unknown-freebsdelf) is working
fine... Thanks.
The diff is against pgcc-980122 but should apply for almost any version of
egcs/pgcc.
-=-=-=-=-=-
--- freebsd.h.old Mon Jan 26 22:07:49 1998
+++ freebsd.h Wed Jan 28 07:56:19 1998
@@ -38,7 +38,7 @@
#define CPP_PREDEFINES "-Dunix -Di386 -Dbsd4_4 -D__FreeBSD__=2 -D__386BSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
/* Like the default, except no -lg. */
-#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
+#define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}"
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
@@ -220,7 +220,15 @@
#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k}"
#define LINK_SPEC \
- "%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} %{assert*}"
+ "%{p:%e`-p' not supported; use `-pg' and gprof(1)} \
+ %{shared:-Bshareable} \
+ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
+ %{pg:-Bstatic} %{Z}} \
+ %{assert*} %{R*}"
+
+#define STARTFILE_SPEC \
+ "%{shared:c++rt0.o%s} \
+ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
/* This is defined when gcc is compiled in the BSD-directory-tree, and must
* make up for the gap to all the stuff done in the GNU-makefiles.
-=-=-=-=-=-
--
Ollivier ROBERT -=- FreeBSD: The Power to Serve! -=- roberto@keltia.freenix.fr
Usenet Canal Historique