From: Jan-Benedict G. <jb...@us...> - 2005-12-15 16:51:03
|
Update of /cvsroot/linux-vax/toolchain/patches In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19766 Added Files: uclibc-000028-hide-brk.patch Log Message: - Hide brk and set an alias. --- NEW FILE: uclibc-000028-hide-brk.patch --- diff -Nurp src-uclibc-fresh/libc/sysdeps/linux/vax/brk.c src-uclibc-hacked/libc/sysdeps/linux/vax/brk.c --- src-uclibc-fresh/libc/sysdeps/linux/vax/brk.c 2005-12-15 16:10:34.000000000 +0100 +++ src-uclibc-hacked/libc/sysdeps/linux/vax/brk.c 2005-12-15 16:23:18.000000000 +0100 @@ -24,21 +24,22 @@ /* This must be initialized data because commons can't have aliases. */ void *__curbrk = NULL; -int brk (void *addr) +int attribute_hidden +__brk (void *addr) { register unsigned long int result __asm__ ("%%r0"); asm ( - " pushl %%ap \n" /* Start frame */ - " pushl %2 \n" /* New top address we wish to get */ - " pushl $1 \n" /* One argument */ - " movl %%sp, %%ap \n" /* Finish frame */ - " chmk %1 \n" /* Perform the system call */ - " addl2 $8, %%sp \n" - " movl (%%sp)+, %%ap \n" - : "=r" (result) - : "0" (__NR_brk), - "g" (addr)); + " pushl %%ap \n" /* Start frame */ + " pushl %2 \n" /* New top address we wish to get */ + " pushl $1 \n" /* One argument */ + " movl %%sp, %%ap \n" /* Finish frame */ + " chmk %1 \n" /* Perform the system call */ + " addl2 $8, %%sp \n" /* Remove pushed arg */ + " movl (%%sp)+, %%ap \n" /* Get back %AP */ + : "=r" (result) + : "0" (__NR_brk), + "g" (addr)); if ((void *) result < addr) { __set_errno (ENOMEM); @@ -48,4 +49,5 @@ int brk (void *addr) return 0; } +strong_alias(__brk,brk) |