* elf/dl-load.c (_dl_map_object_from_fd): Use l_addr instead of
[glibc.git] / sysdeps / unix / i386 / brk.S
bloba7604d7e7a33743824fef6c27edd91075dd4e7fc
1 /* Copyright (C) 1991,92,93,95,97,2002 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
19 #include <sysdep.h>
21 #ifndef SYS_brk
22 #define SYS_brk 17
23 #endif
25 .data
26 .globl C_SYMBOL_NAME(__curbrk)
27 C_LABEL(__curbrk)
28 #ifdef  HAVE_GNU_LD
29         .long C_SYMBOL_NAME(_end)
30 #else
31         .long C_SYMBOL_NAME(end)
32 #endif
34 .text
35 SYSCALL__ (brk, 1)
36         movl 4(%esp), %eax
37 #ifdef  PIC
38         /* Standard PIC nonsense to store into `__curbrk' through the GOT.  */
39         call L(here)
40 L(here): popl %ecx
41         addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx
42         movl C_SYMBOL_NAME(__curbrk@GOT)(%ecx), %ecx
43         movl %eax, (%ecx)
44 #else
45         movl %eax, C_SYMBOL_NAME(__curbrk)
46 #endif
47         xorl %eax, %eax
48         ret
49 PSEUDO_END (__brk)
51 weak_alias (__brk, brk)