Oh GACK! src-clean doesn't quite work that easily since cleandist rebuilds the
[unix-history] / lib / libc / i386 / sys / sbrk.s
index ccafa29..23c452d 100644 (file)
@@ -52,6 +52,27 @@ curbrk:      .long   _end
        .text
 
 ENTRY(sbrk)
        .text
 
 ENTRY(sbrk)
+#ifdef PIC
+       movl    4(%esp),%ecx
+       PIC_PROLOGUE
+       movl    PIC_GOT(curbrk),%edx
+       movl    (%edx),%eax
+       PIC_EPILOGUE
+       addl    %eax,4(%esp)
+       lea     SYS_brk,%eax
+       LCALL(7,0)
+       jb      err
+       PIC_PROLOGUE
+       movl    PIC_GOT(curbrk),%edx
+       movl    (%edx),%eax
+       addl    %ecx,(%edx)
+       PIC_EPILOGUE
+       ret
+err:
+       jmp     PIC_PLT(cerror)
+
+#else
+
        movl    4(%esp),%ecx
        movl    curbrk,%eax
        addl    %eax,4(%esp)
        movl    4(%esp),%ecx
        movl    curbrk,%eax
        addl    %eax,4(%esp)
@@ -63,3 +84,4 @@ ENTRY(sbrk)
        ret
 err:
        jmp     cerror
        ret
 err:
        jmp     cerror
+#endif