Summary: | grow_heap: static linking warns about madvise() not implemented | ||
---|---|---|---|
Product: | glibc | Reporter: | Samuel Thibault <samuel.thibault> |
Component: | hurd | Assignee: | Roland McGrath <roland> |
Status: | VERIFIED FIXED | ||
Severity: | normal | CC: | glibc-bugs, tschwinge |
Priority: | P2 | Flags: | fweimer:
security-
|
Version: | unspecified | ||
Target Milestone: | 2.16 | ||
Host: | Target: | ||
Build: | Last reconfirmed: |
Description
Samuel Thibault
2007-07-21 11:21:09 UTC
As I understand it this is an issue with glibc for Hurd, not for architectures in ports. Should be fixed in trunk, but I didn't actually try to compile for Hurd. It appears to be current practice that the person committing a patch fixing a (non-ports) bug should also add that bug to the list in the NEWS file, so 4822 should be added there. (In reply to comment #2) > Should be fixed in trunk, but I didn't actually try to compile for Hurd. I fixed it up for you in commit 9078ce930afda8bbcba6fe860a13ca62abcf2742. ;-) Errors and warnings were: gcc-4.4 malloc.c [...] [...] In file included from ../include/sys/mman.h:2, from malloc.c:1754: ../misc/sys/mman.h:95: error: expected identifier or '(' before 'void' ../misc/sys/mman.h:95: error: expected ')' before '(' token [...] make[3]: *** [/media/erich/home/thomas/tmp/glibc/debian/madvise/eglibc-2.13/build-tree/hurd-i386-libc/malloc/malloc.o] Error 1 make[3]: Leaving directory `/media/erich/home/thomas/tmp/glibc/debian/madvise/eglibc-2.13/malloc' make[2]: *** [malloc/subdir_lib] Error 2 (Poor GCC, seeing that ``prototype''.) After fixing that: In file included from malloc.c:2567: arena.c: In function 'shrink_heap': arena.c:823: warning: left-hand operand of comma expression has no effect arena.c:823: warning: left-hand operand of comma expression has no effect malloc.c: In function 'mTRIm': malloc.c:5874: warning: left-hand operand of comma expression has no effect malloc.c:5874: warning: left-hand operand of comma expression has no effect Now the situation is as follows: $ echo 'int main() { }' | gcc -o /dev/null -x c - $ echo 'int main() { madvise (); }' | gcc -o /dev/null -x c - $ echo 'int main() { }' | gcc -o /dev/null -static -x c - $ echo 'int main() { madvise (); }' | gcc -o /dev/null -static -x c - /tmp/cce05X6t.o: In function `main': :(.text+0x7): warning: warning: madvise is not implemented and will always fail That is, in the -static case, we only get the warning if madvise is actively being used in the user code, but not due to glibc's own usage in malloc. Joseph already had amended the NEWS file. Samuel, you can now replace the Debian glibc patch with d2c736f809690dd69f1cade53a61b99e401bb0e3 and 9078ce930afda8bbcba6fe860a13ca62abcf2742. |