mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 15:22:15 +00:00
Merge pull request #48 from jfbastien/fix_signatures
Fix signatures of __libc_start_main/_init/_fini
This commit is contained in:
commit
0ed10f0b97
10
crt/crt1.c
10
crt/crt1.c
@ -4,15 +4,15 @@
|
|||||||
|
|
||||||
#include "crt_arch.h"
|
#include "crt_arch.h"
|
||||||
|
|
||||||
int main();
|
int main(int argc, char *argv[]);
|
||||||
void _init() __attribute__((weak));
|
void _init(void) __attribute__((weak));
|
||||||
void _fini() __attribute__((weak));
|
void _fini(void) __attribute__((weak));
|
||||||
_Noreturn int __libc_start_main(int (*)(), int, char **,
|
_Noreturn int __libc_start_main(int (*)(), int, char **,
|
||||||
void (*)(), void(*)(), void(*)());
|
void (*)(), void(*)());
|
||||||
|
|
||||||
void _start_c(long *p)
|
void _start_c(long *p)
|
||||||
{
|
{
|
||||||
int argc = p[0];
|
int argc = p[0];
|
||||||
char **argv = (void *)(p+1);
|
char **argv = (void *)(p+1);
|
||||||
__libc_start_main(main, argc, argv, _init, _fini, 0);
|
__libc_start_main(main, argc, argv, _init, _fini);
|
||||||
}
|
}
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
#include "../ldso/dlstart.c"
|
#include "../ldso/dlstart.c"
|
||||||
|
|
||||||
int main();
|
int main();
|
||||||
void _init() __attribute__((weak));
|
void _init(void) __attribute__((weak));
|
||||||
void _fini() __attribute__((weak));
|
void _fini(void) __attribute__((weak));
|
||||||
_Noreturn int __libc_start_main(int (*)(), int, char **,
|
_Noreturn int __libc_start_main(int (*)(), int, char **,
|
||||||
void (*)(), void(*)(), void(*)());
|
void (*)(), void(*)());
|
||||||
|
|
||||||
__attribute__((__visibility__("hidden")))
|
__attribute__((__visibility__("hidden")))
|
||||||
_Noreturn void __dls2(unsigned char *base, size_t *sp)
|
_Noreturn void __dls2(unsigned char *base, size_t *sp)
|
||||||
{
|
{
|
||||||
__libc_start_main(main, *sp, (void *)(sp+1), _init, _fini, 0);
|
__libc_start_main(main, *sp, (void *)(sp+1), _init, _fini);
|
||||||
}
|
}
|
||||||
|
3
src/env/__libc_start_main.c
vendored
3
src/env/__libc_start_main.c
vendored
@ -67,7 +67,8 @@ static void libc_start_init(void)
|
|||||||
|
|
||||||
weak_alias(libc_start_init, __libc_start_init);
|
weak_alias(libc_start_init, __libc_start_init);
|
||||||
|
|
||||||
int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv)
|
int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv,
|
||||||
|
void(*init)(), void(*fini)())
|
||||||
{
|
{
|
||||||
char **envp = argv+argc+1;
|
char **envp = argv+argc+1;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user