mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
libc: remove some dead code from freebsd crt0
This commit is contained in:
parent
26935d9da1
commit
4d6e979360
3 changed files with 2 additions and 109 deletions
42
lib/libc/freebsd/lib/csu/common/crtbegin.c
vendored
42
lib/libc/freebsd/lib/csu/common/crtbegin.c
vendored
|
|
@ -41,9 +41,8 @@ void __cxa_finalize(void *) __weak_symbol;
|
||||||
* When we have ctors/dtors call from the dtor handler before calling
|
* When we have ctors/dtors call from the dtor handler before calling
|
||||||
* any dtors, otherwise use a destructor.
|
* any dtors, otherwise use a destructor.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_CTORS
|
/* zig patch: no HAVE_CTORS */
|
||||||
__attribute__((destructor))
|
__attribute__((destructor))
|
||||||
#endif
|
|
||||||
static void
|
static void
|
||||||
run_cxa_finalize(void)
|
run_cxa_finalize(void)
|
||||||
{
|
{
|
||||||
|
|
@ -53,43 +52,6 @@ run_cxa_finalize(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/* zig patch: no HAVE_CTORS */
|
||||||
* On some architectures and toolchains we may need to call the .dtors.
|
|
||||||
* These are called in the order they are in the ELF file.
|
|
||||||
*/
|
|
||||||
#ifdef HAVE_CTORS
|
|
||||||
static void __do_global_dtors_aux(void) __used;
|
|
||||||
|
|
||||||
static crt_func __CTOR_LIST__[] __section(".ctors") __used = {
|
|
||||||
(crt_func)-1
|
|
||||||
};
|
|
||||||
static crt_func __DTOR_LIST__[] __section(".dtors") __used = {
|
|
||||||
(crt_func)-1
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
__do_global_dtors_aux(void)
|
|
||||||
{
|
|
||||||
crt_func fn;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
#ifdef SHARED
|
|
||||||
run_cxa_finalize();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (n = 1;; n++) {
|
|
||||||
fn = __DTOR_LIST__[n];
|
|
||||||
if (fn == (crt_func)0 || fn == (crt_func)-1)
|
|
||||||
break;
|
|
||||||
fn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
asm (
|
|
||||||
".pushsection .fini \n"
|
|
||||||
"\t" INIT_CALL_SEQ(__do_global_dtors_aux) "\n"
|
|
||||||
".popsection \n"
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* zig patch: remove gcj nonsense */
|
/* zig patch: remove gcj nonsense */
|
||||||
|
|
|
||||||
65
lib/libc/freebsd/lib/csu/common/crtend.c
vendored
65
lib/libc/freebsd/lib/csu/common/crtend.c
vendored
|
|
@ -1,65 +0,0 @@
|
||||||
/*-
|
|
||||||
* SPDX-License-Identifier: BSD-1-Clause
|
|
||||||
*
|
|
||||||
* Copyright 2018 Andrew Turner
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
||||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
||||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
||||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
||||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
#include "crt.h"
|
|
||||||
|
|
||||||
typedef void (*crt_func)(void);
|
|
||||||
|
|
||||||
/* zig patch: remove gcj nonsense */
|
|
||||||
|
|
||||||
#ifdef HAVE_CTORS
|
|
||||||
|
|
||||||
/*
|
|
||||||
* On some architectures and toolchains we may need to call the .ctors.
|
|
||||||
* These are called in the reverse order they are in the ELF file.
|
|
||||||
*/
|
|
||||||
static void __do_global_ctors_aux(void) __used;
|
|
||||||
|
|
||||||
static crt_func __CTOR_END__[] __section(".ctors") __used = {
|
|
||||||
(crt_func)0
|
|
||||||
};
|
|
||||||
static crt_func __DTOR_END__[] __section(".dtors") __used = {
|
|
||||||
(crt_func)0
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
__do_global_ctors_aux(void)
|
|
||||||
{
|
|
||||||
crt_func fn;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
for (n = 1;; n++) {
|
|
||||||
fn = __CTOR_END__[-n];
|
|
||||||
if (fn == (crt_func)0 || fn == (crt_func)-1)
|
|
||||||
break;
|
|
||||||
fn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
asm (
|
|
||||||
".pushsection .init \n"
|
|
||||||
"\t" INIT_CALL_SEQ(__do_global_ctors_aux) "\n"
|
|
||||||
".popsection \n"
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
@ -139,10 +139,6 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
|
||||||
.path = "common" ++ path.sep_str ++ "crtbrand.S",
|
.path = "common" ++ path.sep_str ++ "crtbrand.S",
|
||||||
.flags = acflags.items,
|
.flags = acflags.items,
|
||||||
},
|
},
|
||||||
.{
|
|
||||||
.path = "common" ++ path.sep_str ++ "crtend.c",
|
|
||||||
.flags = cflags.items,
|
|
||||||
},
|
|
||||||
.{
|
.{
|
||||||
.path = "common" ++ path.sep_str ++ "feature_note.S",
|
.path = "common" ++ path.sep_str ++ "feature_note.S",
|
||||||
.flags = acflags.items,
|
.flags = acflags.items,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue