Move the code for the ".init" and ".fini" sections outside of a
C function so the compiler won't try to emit line numbers for it with "-g", breaking the build. This has the nice side-effect of making crtbegin.o and crtbeginS.o a little bit smaller. Remove "-Wno-unused" from the Makefile. Replace it with "__unused" on particular function and variable declarations.
This commit is contained in:
parent
2f9a9cb08c
commit
bb2b869188
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=44691
@ -1,5 +1,5 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.2 1998/09/07 23:31:59 jdp Exp $
|
||||
# $Id: Makefile,v 1.3 1999/01/09 21:50:56 jdp Exp $
|
||||
#
|
||||
|
||||
SRCS= crt1.c crtbegin.c crtend.c crti.S crtn.S
|
||||
@ -7,7 +7,7 @@ OBJS= ${SRCS:N*.h:R:S/$/.o/g}
|
||||
OBJS+= gcrt1.o
|
||||
SOBJS= crtbegin.So crtend.So
|
||||
CFLAGS+= -elf
|
||||
CFLAGS+= -Wall -Wno-unused
|
||||
CFLAGS+= -Wall
|
||||
LDFLAGS+= -elf
|
||||
NOMAN= true
|
||||
NOPIC= true
|
||||
|
@ -22,14 +22,19 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: crtbegin.c,v 1.3 1996/04/12 02:24:35 jdp Exp $
|
||||
* $Id: crtbegin.c,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
typedef void (*fptr)(void);
|
||||
|
||||
static fptr ctor_list[1] __attribute__((section(".ctors"))) = { (fptr) -1 };
|
||||
static fptr dtor_list[1] __attribute__((section(".dtors"))) = { (fptr) -1 };
|
||||
|
||||
static void do_ctors(void) __unused;
|
||||
static void do_dtors(void) __unused;
|
||||
|
||||
static void
|
||||
do_ctors(void)
|
||||
{
|
||||
@ -50,12 +55,5 @@ do_dtors(void)
|
||||
(**fpp)();
|
||||
}
|
||||
|
||||
static void
|
||||
function_skeleton(void)
|
||||
{
|
||||
__asm__(".section .init,\"ax\",@progbits");
|
||||
do_ctors();
|
||||
__asm__(".section .fini,\"ax\",@progbits");
|
||||
do_dtors();
|
||||
__asm__(".text");
|
||||
}
|
||||
__asm__(".section .init,\"ax\",@progbits; call do_ctors; .previous");
|
||||
__asm__(".section .fini,\"ax\",@progbits; call do_dtors; .previous");
|
||||
|
@ -22,10 +22,12 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: crtend.c,v 1.3 1996/04/12 02:24:36 jdp Exp $
|
||||
* $Id: crtend.c,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
typedef void (*fptr)(void);
|
||||
|
||||
static fptr ctor_end[1] __attribute__((section(".ctors"))) = { 0 };
|
||||
static fptr dtor_end[1] __attribute__((section(".dtors"))) = { 0 };
|
||||
static fptr ctor_end[1] __attribute__((section(".ctors"))) __unused = { 0 };
|
||||
static fptr dtor_end[1] __attribute__((section(".dtors"))) __unused = { 0 };
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.2 1998/09/07 23:31:59 jdp Exp $
|
||||
# $Id: Makefile,v 1.3 1999/01/09 21:50:56 jdp Exp $
|
||||
#
|
||||
|
||||
SRCS= crt1.c crtbegin.c crtend.c crti.S crtn.S
|
||||
@ -7,7 +7,7 @@ OBJS= ${SRCS:N*.h:R:S/$/.o/g}
|
||||
OBJS+= gcrt1.o
|
||||
SOBJS= crtbegin.So crtend.So
|
||||
CFLAGS+= -elf
|
||||
CFLAGS+= -Wall -Wno-unused
|
||||
CFLAGS+= -Wall
|
||||
LDFLAGS+= -elf
|
||||
NOMAN= true
|
||||
NOPIC= true
|
||||
|
@ -22,14 +22,19 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: crtbegin.c,v 1.3 1996/04/12 02:24:35 jdp Exp $
|
||||
* $Id: crtbegin.c,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
typedef void (*fptr)(void);
|
||||
|
||||
static fptr ctor_list[1] __attribute__((section(".ctors"))) = { (fptr) -1 };
|
||||
static fptr dtor_list[1] __attribute__((section(".dtors"))) = { (fptr) -1 };
|
||||
|
||||
static void do_ctors(void) __unused;
|
||||
static void do_dtors(void) __unused;
|
||||
|
||||
static void
|
||||
do_ctors(void)
|
||||
{
|
||||
@ -50,12 +55,5 @@ do_dtors(void)
|
||||
(**fpp)();
|
||||
}
|
||||
|
||||
static void
|
||||
function_skeleton(void)
|
||||
{
|
||||
__asm__(".section .init,\"ax\",@progbits");
|
||||
do_ctors();
|
||||
__asm__(".section .fini,\"ax\",@progbits");
|
||||
do_dtors();
|
||||
__asm__(".text");
|
||||
}
|
||||
__asm__(".section .init,\"ax\",@progbits; call do_ctors; .previous");
|
||||
__asm__(".section .fini,\"ax\",@progbits; call do_dtors; .previous");
|
||||
|
@ -22,10 +22,12 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: crtend.c,v 1.3 1996/04/12 02:24:36 jdp Exp $
|
||||
* $Id: crtend.c,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
typedef void (*fptr)(void);
|
||||
|
||||
static fptr ctor_end[1] __attribute__((section(".ctors"))) = { 0 };
|
||||
static fptr dtor_end[1] __attribute__((section(".dtors"))) = { 0 };
|
||||
static fptr ctor_end[1] __attribute__((section(".ctors"))) __unused = { 0 };
|
||||
static fptr dtor_end[1] __attribute__((section(".dtors"))) __unused = { 0 };
|
||||
|
Loading…
Reference in New Issue
Block a user