OSDN Git Service

- Fix gcc glitch with mremap and IMA.
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 30 May 2008 20:00:19 +0000 (20:00 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 30 May 2008 20:00:19 +0000 (20:00 -0000)
commit60cb5307b9ae5614f0cbb280e19727e0c719a974
treee74c6bfcd36c82b5a7ae549134023038f53d14a9
parent534b77f460f9472dc2de3ba94da07d8db132257f
- Fix gcc glitch with mremap and IMA.
  For -combine, make sure that we don't pollute our non-varargs mremap decl
  with some vararg decl from later in the TU by putting ours after anybody
  else who is picking up mman.h.
  This is admittedly a small work-around..

smallish testcase:

$ cat bug.h
extern void *mremap (void*, unsigned, unsigned, int, ...);
$ cat bug1.c
#include "bug.h"
int whatever;
$ cat bug2.c
#define mremap _hidemremap
#include "bug.h"
#undef mremap
void *mremap (void*, unsigned, unsigned, int, void*);
$ gcc -c bug1.c bug2.c
$ gcc -c bug1.c bug2.c -combine
bug2.c:4: error: conflicting types for ‘mremap’
bug.h:1: error: previous declaration of ‘mremap’ was here
libc/sysdeps/linux/common/Makefile.in