Module Name: src
Committed By: matt
Date: Mon Jan 28 06:17:57 UTC 2013
Modified Files:
src/lib/csu/common: crt0-common.c
Log Message:
Make with work with gcc 4.5 or clang.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/csu/common/crt0-common.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/csu/common/crt0-common.c
diff -u src/lib/csu/common/crt0-common.c:1.10 src/lib/csu/common/crt0-common.c:1.11
--- src/lib/csu/common/crt0-common.c:1.10 Tue Jan 22 22:57:37 2013
+++ src/lib/csu/common/crt0-common.c Mon Jan 28 06:17:57 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: crt0-common.c,v 1.10 2013/01/22 22:57:37 matt Exp $ */
+/* $NetBSD: crt0-common.c,v 1.11 2013/01/28 06:17:57 matt Exp $ */
/*
* Copyright (c) 1998 Christos Zoulas
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: crt0-common.c,v 1.10 2013/01/22 22:57:37 matt Exp $");
+__RCSID("$NetBSD: crt0-common.c,v 1.11 2013/01/28 06:17:57 matt Exp $");
#include <sys/types.h>
#include <sys/exec.h>
@@ -95,10 +95,17 @@ do { \
* Since we don't need .init or .fini sections, just code them in C
* to make life easier.
*/
+#if __GNUC_PREREQ__(4,5) || defined(__clang__)
+static const fptr_t init_array_start[1] __weak_reference(__init_array_start);
+static const fptr_t init_array_end[1] __weak_reference(__init_array_end);
+static const fptr_t fini_array_start[1] __weak_reference(__fini_array_start);
+static const fptr_t fini_array_end[1] __weak_reference(__fini_array_end);
+#else
extern const fptr_t init_array_start[] __weak_reference(__init_array_start);
extern const fptr_t init_array_end[] __weak_reference(__init_array_end);
extern const fptr_t fini_array_start[] __weak_reference(__fini_array_start);
extern const fptr_t fini_array_end[] __weak_reference(__fini_array_end);
+#endif
static inline void
_init(void)