http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58719

            Bug ID: 58719
           Summary: libgcc/enable-execute-stack-mprotect.c: bootstrap
                    failure due to missing #include <sys/types.h>
           Product: gcc
           Version: 4.8.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: skunk at iskunk dot org
              Host: i686-unknown-freebsd4.8
            Target: i686-unknown-freebsd4.8
             Build: i686-unknown-freebsd4.8

After patching bug #58274, a bootstrap of GCC 4.8.1 on FreeBSD 4.8 stops with

/tmp/gcc-build/./gcc/xgcc -B/tmp/gcc-build/./gcc/
-B/usr/local/i686-unknown-freebsd4.8/bin/
-B/usr/local/i686-unknown-freebsd4.8/lib/ -isystem
/usr/local/i686-unknown-freebsd4.8/include -isystem
/usr/local/i686-unknown-freebsd4.8/sys-include    -g -O2 -O2  -g -O2 -DIN_GCC  
-W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition  -isystem ./include   -fpic -pthread -g -DIN_LIBGCC2
-fbuilding-libgcc -fno-stack-protector   -fpic -pthread -I. -I. -I../.././gcc
-I../../../gcc-4.8.1/libgcc -I../../../gcc-4.8.1/libgcc/.
-I../../../gcc-4.8.1/libgcc/../gcc -I../../../gcc-4.8.1/libgcc/../include 
-DHAVE_CC_TLS -DUSE_EMUTLS -o enable-execute-stack.o -MT enable-execute-stack.o
-MD -MP -MF enable-execute-stack.dep  -c enable-execute-stack.c
-fvisibility=hidden -DHIDE_EXPORTS
In file included from /usr/include/sys/mman.h:135:0,
                 from enable-execute-stack.c:25:
/usr/include/sys/mman.h:141:14: error: unknown type name 'mode_t'
 int shm_open __P((const char *, int, mode_t));
              ^
/usr/include/sys/mman.h:144:11: error: unknown type name 'size_t'
 int mlock __P((const void *, size_t));
           ^
/usr/include/sys/mman.h:147:13: error: unknown type name 'size_t'
 void * mmap __P((void *, size_t, int, int, int, off_t));
             ^
/usr/include/sys/mman.h:147:13: error: unknown type name 'off_t'
 void * mmap __P((void *, size_t, int, int, int, off_t));
             ^
/usr/include/sys/mman.h:149:14: error: unknown type name 'size_t'
 int mprotect __P((const void *, size_t, int));
              ^
/usr/include/sys/mman.h:150:11: error: unknown type name 'size_t'
 int msync __P((void *, size_t, int));
           ^
/usr/include/sys/mman.h:151:13: error: unknown type name 'size_t'
 int munlock __P((const void *, size_t));
             ^
/usr/include/sys/mman.h:152:12: error: unknown type name 'size_t'
 int munmap __P((void *, size_t));
            ^
/usr/include/sys/mman.h:154:13: error: unknown type name 'size_t'
 int madvise __P((void *, size_t, int));
             ^
/usr/include/sys/mman.h:155:13: error: unknown type name 'size_t'
 int mincore __P((const void *, size_t, char *));
             ^
/usr/include/sys/mman.h:156:14: error: unknown type name 'size_t'
 int minherit __P((void *, size_t, int));
              ^
enable-execute-stack.c: In function '__enable_execute_stack':
enable-execute-stack.c:86:7: warning: implicit declaration of function
'mprotect' [-Wimplicit-function-declaration]
       if (mprotect (page, end - page, STACK_PROT_RWX) < 0)
       ^
gmake[3]: *** [enable-execute-stack.o] Error 1
gmake[3]: Leaving directory `/tmp/gcc-build/i686-unknown-freebsd4.8/libgcc'
gmake[2]: *** [all-stage1-target-libgcc] Error 2
gmake[2]: Leaving directory `/tmp/gcc-build'
gmake[1]: *** [stage1-bubble] Error 2
gmake[1]: Leaving directory `/tmp/gcc-build'
gmake: *** [bootstrap] Error 2

$ ls -l /tmp/gcc-build/i686-unknown-freebsd4.8/libgcc/enable-execute-stack.c
lrwxr-xr-x 1 cport r&d 57 Oct 14 02:31
/tmp/gcc-build/i686-unknown-freebsd4.8/libgcc/enable-execute-stack.c ->
../../../gcc-4.8.1/libgcc/enable-execute-stack-mprotect.c


Adding an '#include <sys/types.h>' to libgcc/enable-execute-stack-mprotect.c,
right before the sys/mman.h #include, is enough to get the bootstrap going
again.

Reply via email to