/programs/develop/libraries/newlib/sdk/struct.inc |
---|
File deleted |
/programs/develop/libraries/newlib/sdk/proc32.inc |
---|
File deleted |
/programs/develop/libraries/newlib/sdk/libc.inc |
---|
File deleted |
/programs/develop/libraries/newlib/sdk/hello.asm |
---|
File deleted |
/programs/develop/libraries/newlib/sdk/import32.inc |
---|
File deleted |
/programs/develop/libraries/newlib/sdk/app.inc |
---|
File deleted |
/programs/develop/libraries/newlib/sdk |
---|
Property changes: |
Deleted: tsvn:logminsize |
-5 |
\ No newline at end of property |
/programs/develop/libraries/newlib/cmd2.sed |
---|
File deleted |
\ No newline at end of file |
/programs/develop/libraries/newlib/cmd1.sed |
---|
File deleted |
\ No newline at end of file |
/programs/develop/libraries/newlib/crt/crt3.c |
---|
38,8 → 38,6 |
void* get_entry_point(void *raw); |
void _pei386_runtime_relocator (void){}; |
void __attribute__((noreturn)) |
__crt_startup (void) |
{ |
47,12 → 45,11 |
void *img; |
void __attribute__((noreturn)) (*entry)(void *img); |
// _pei386_runtime_relocator(); |
img = load_libc(); |
if(img == NULL) |
{ |
asm("int3"); |
asm ("int $0x40" ::"a"(-1)); |
}; |
/programs/develop/libraries/newlib/crt/crtdll.c |
---|
22,7 → 22,7 |
int reserved; |
void *__idata_start; |
void *__idata_end; |
int (*main)(int argc, char **argv, char **envp); |
void (*main)(int argc, char **argv, char **envp); |
}; |
int _argc; |
117,9 → 117,9 |
_argv = arg; |
retval = header->main(_argc, _argv, NULL); |
header->main(_argc, _argv, NULL); |
done: |
exit (retval); |
_exit (retval); |
} |
/programs/develop/libraries/newlib/pe/loader.c |
---|
686,7 → 686,7 |
memcpy(path+dllpath->path_len, libname, len); |
path[len+dllpath->path_len]=0; |
// printf("%s\n", path); |
printf("%s\n", path); |
img_base = load_lib_internal(path); |
/programs/develop/libraries/newlib/pe/crtloader.c |
---|
39,7 → 39,7 |
return (val & (val - 1)) == 0; |
} |
int validate_pe(void *raw, size_t raw_size) |
int validate_pe(void *raw, size_t raw_size, int is_exec) |
{ |
PIMAGE_DOS_HEADER dos; |
PIMAGE_NT_HEADERS32 nt; |
63,9 → 63,15 |
if(nt->FileHeader.Machine != IMAGE_FILE_MACHINE_I386) |
return 0; |
if(is_exec && (nt->FileHeader.Characteristics & IMAGE_FILE_DLL)) |
return 0; |
if(nt->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) |
return 0; |
if( is_exec && nt->OptionalHeader.ImageBase != 0) |
return 0; |
if(nt->OptionalHeader.SectionAlignment < 4096) |
{ |
if(nt->OptionalHeader.FileAlignment != nt->OptionalHeader.SectionAlignment) |
208,7 → 214,7 |
// printf("libc.dll raw %p, size %d\n", raw_img, raw_size); |
if(validate_pe(raw_img, raw_size) != 0) |
if(validate_pe(raw_img, raw_size, 0) != 0) |
{ |
// printf("invalide libc.dll\n"); |
img_base = create_image(raw_img); |