/* provide a replacement openat function
- Copyright (C) 2004-2006, 2008-2010 Free Software Foundation, Inc.
+ Copyright (C) 2004-2006, 2008-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#ifndef _GL_HEADER_OPENAT
#define _GL_HEADER_OPENAT
-#include <fcntl.h>
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc miscompiles
+ openat.c because that file has a preliminary #include <fcntl.h>. */
+#include "fcntl.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdbool.h>
-#ifndef __attribute__
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
-# define __attribute__(x) /* empty */
-# endif
-#endif
-
-#ifndef ATTRIBUTE_NORETURN
-# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#endif
-
#if !HAVE_OPENAT
int openat_permissive (int fd, char const *file, int flags, mode_t mode,
#endif
-void openat_restore_fail (int) ATTRIBUTE_NORETURN;
-void openat_save_fail (int) ATTRIBUTE_NORETURN;
+_Noreturn void openat_restore_fail (int);
+_Noreturn void openat_save_fail (int);
/* Using these function names makes application code
slightly more readable than it would be with