bin/140089: libcsu: Bump to WARNS=6
Ulrich Spörlein
uqs at spoerlein.net
Thu Oct 29 20:00:12 UTC 2009
>Number: 140089
>Category: bin
>Synopsis: libcsu: Bump to WARNS=6
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Oct 29 20:00:11 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Ulrich Spörlein
>Release: FreeBSD 9.0-CURRENT i386
>Organization:
>Environment:
>Description:
Most of lib/csu compiles fine with WARNS=6 already, some archs
were missing a couple of declarations.
I think the _start() declaration for arm is bogus, it is using
__start() with a different order of args. But I cannot figure
out the asm involved so someone would need to double check this.
>How-To-Repeat:
>Fix:
--- libcsu.diff begins here ---
diff -r d1a04723c41c -r 0870809ec1fb lib/csu/Makefile.inc
--- a/lib/csu/Makefile.inc Fri Oct 23 15:14:54 2009 +0000
+++ b/lib/csu/Makefile.inc Thu Oct 29 20:48:21 2009 +0100
@@ -1,3 +1,4 @@
# $FreeBSD$
+WARNS?= 6
SSP_CFLAGS=
diff -r d1a04723c41c -r 0870809ec1fb lib/csu/arm/Makefile
--- a/lib/csu/arm/Makefile Fri Oct 23 15:14:54 2009 +0000
+++ b/lib/csu/arm/Makefile Thu Oct 29 20:48:21 2009 +0100
@@ -5,8 +5,7 @@
SRCS= crt1.c crti.S crtn.S
OBJS= ${SRCS:N*.h:R:S/$/.o/g}
OBJS+= gcrt1.o
-CFLAGS+= -Wall -Wno-unused \
- -I${.CURDIR}/../common \
+CFLAGS+= -I${.CURDIR}/../common \
-I${.CURDIR}/../../libc/include
all: ${OBJS}
diff -r d1a04723c41c -r 0870809ec1fb lib/csu/arm/crt1.c
--- a/lib/csu/arm/crt1.c Fri Oct 23 15:14:54 2009 +0000
+++ b/lib/csu/arm/crt1.c Thu Oct 29 20:48:21 2009 +0100
@@ -62,6 +62,8 @@
extern int main(int, char **, char **);
extern void _start(int, char **, char **, const struct Struct_Obj_Entry *,
void (*)(void), struct ps_strings *);
+extern void __start(int, char **, char **, struct ps_strings *,
+ const struct Struct_Obj_Entry *, void (*)(void));
#ifdef GCRT
extern void _mcleanup(void);
diff -r d1a04723c41c -r 0870809ec1fb lib/csu/i386-elf/Makefile
--- a/lib/csu/i386-elf/Makefile Fri Oct 23 15:14:54 2009 +0000
+++ b/lib/csu/i386-elf/Makefile Thu Oct 29 20:48:21 2009 +0100
@@ -8,7 +8,6 @@
FILESGRP= ${LIBGRP}
FILESMODE= ${LIBMODE}
FILESDIR= ${LIBDIR}
-WARNS?= 6
CFLAGS+= -I${.CURDIR}/../common \
-I${.CURDIR}/../../libc/include
CLEANFILES= ${FILES}
diff -r d1a04723c41c -r 0870809ec1fb lib/csu/mips/Makefile
--- a/lib/csu/mips/Makefile Fri Oct 23 15:14:54 2009 +0000
+++ b/lib/csu/mips/Makefile Thu Oct 29 20:48:21 2009 +0100
@@ -5,8 +5,7 @@
SRCS= crt1.c crti.S crtn.S
OBJS= ${SRCS:N*.h:R:S/$/.o/g}
OBJS+= gcrt1.o
-CFLAGS+= -Wall -Wno-unused \
- -I${.CURDIR}/../common \
+CFLAGS+= -I${.CURDIR}/../common \
-I${.CURDIR}/../../libc/include
all: ${OBJS}
diff -r d1a04723c41c -r 0870809ec1fb lib/csu/mips/crt1.c
--- a/lib/csu/mips/crt1.c Fri Oct 23 15:14:54 2009 +0000
+++ b/lib/csu/mips/crt1.c Thu Oct 29 20:48:21 2009 +0100
@@ -54,6 +54,10 @@
extern void _init(void);
extern void _fini(void);
+extern void __gccmain(void);
+extern void __main(void);
+extern void __start(char **, void (*)(void), struct Struct_Obj_Entry *,
+ struct ps_strings *);
extern int main(int, char **, char **);
#ifdef GCRT
@@ -73,8 +77,8 @@
void
__start(char **ap,
void (*cleanup)(void), /* from shared loader */
- struct Struct_Obj_Entry *obj, /* from shared loader */
- struct ps_strings *ps_strings)
+ struct Struct_Obj_Entry *obj __unused, /* from shared loader */
+ struct ps_strings *ps_strings __unused)
{
int argc;
char **argv;
--- libcsu.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list