https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98506

            Bug ID: 98506
           Summary: ../../gcc/libcody/resolver.cc:178:43: error:
                    'O_CLOEXEC' was not declared in thi s scope
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: danglin at gcc dot gnu.org
  Target Milestone: ---
              Host: hppa*-*-hpux11.11
            Target: hppa*-*-hpux11.11
             Build: hppa*-*-hpux11.11

g++ -std=c++11 -g -fno-enforce-eh-specs -fno-stack-protector
-fno-threadsafe-sta
tics -fno-exceptions -fno-rtti -fdebug-prefix-map=../../gcc/libcody/= -W -Wall
-
include config.h -I../../gcc/libcody \
  -MMD -MP -MF resolver.d -c -o resolver.o ../../gcc/libcody/resolver.cc
../../gcc/libcody/resolver.cc: In member function 'virtual int
Cody::Resolver::I
ncludeTranslateRequest(Cody::Server*, Cody::Flags, std::__cxx11::string&)':
../../gcc/libcody/resolver.cc:178:43: error: 'O_CLOEXEC' was not declared in
thi
s scope
   int fd_dir = open (REPO_DIR, O_RDONLY | O_CLOEXEC | O_DIRECTORY);
                                           ^~~~~~~~~
../../gcc/libcody/resolver.cc:178:43: note: suggested alternative: 'FD_CLOEXEC'
   int fd_dir = open (REPO_DIR, O_RDONLY | O_CLOEXEC | O_DIRECTORY);
                                           ^~~~~~~~~
                                           FD_CLOEXEC
../../gcc/libcody/resolver.cc:178:55: error: 'O_DIRECTORY' was not declared in
t
his scope
   int fd_dir = open (REPO_DIR, O_RDONLY | O_CLOEXEC | O_DIRECTORY);
                                                       ^~~~~~~~~~~
../../gcc/libcody/resolver.cc:178:55: note: suggested alternative: 'O_DIRECT'
   int fd_dir = open (REPO_DIR, O_RDONLY | O_CLOEXEC | O_DIRECTORY);
                                                       ^~~~~~~~~~~
                                                       O_DIRECT
../../gcc/libcody/resolver.cc:180:10: error: 'fstatat' was not declared in this
scope
       && fstatat (fd_dir, cmi.c_str (), &statbuf, 0) == 0
          ^~~~~~~
../../gcc/libcody/resolver.cc:180:10: note: suggested alternative: 'fstat64'
       && fstatat (fd_dir, cmi.c_str (), &statbuf, 0) == 0
          ^~~~~~~
          fstat64
make[3]: *** [Makefile:127: resolver.o] Error 1
make[3]: Leaving directory '/test/gnu/gcc/objdir/libcody'
make[2]: *** [Makefile:10195: all-stage1-libcody] Error 2

Possible fix is here:
https://gcc.gnu.org/pipermail/gcc-patches/2020-December/562508.html

Another alternative would be autoconf check?
#if (defined (__unix__)                                                 \
     || (defined (__Apple__)                                            \
         && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)     \
         && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101000))
// Autoconf test?
#define HAVE_FSTATAT 1
#else
#define HAVE_FSTATAT 0
#endif

Reply via email to