there is no reason to avoid multiple identical macro definitions; this
is perfectly legal C, and even with the maximal warning options
enabled, gcc does not issue any warning for it.
#define FNONBLOCK O_NONBLOCK
#define FNDELAY O_NDELAY
#define FNONBLOCK O_NONBLOCK
#define FNDELAY O_NDELAY
#define F_OK 0
#define R_OK 4
#define W_OK 2
#define F_OK 0
#define R_OK 4
#define W_OK 2
#define F_LOCK 1
#define F_TLOCK 2
#define F_TEST 3
#define F_LOCK 1
#define F_TLOCK 2
#define F_TEST 3
int lockf(int, int, off_t);
#endif
int lockf(int, int, off_t);
#endif
#ifdef _LARGEFILE64_SOURCE
#define open64 open
#ifdef _LARGEFILE64_SOURCE
#define open64 open
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
#define LOCK_SH 1
#define LOCK_EX 2
#define LOCK_NB 4
#define LOCK_UN 8
#define LOCK_SH 1
#define LOCK_EX 2
#define LOCK_NB 4
#define LOCK_UN 8
+#define L_SET 0
+#define L_INCR 1
+#define L_XTND 2
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
-#undef SEEK_SET
-#undef SEEK_CUR
-#undef SEEK_END
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2
-#if defined(_BSD_SOURCE) && !defined(L_SET)
-#define L_SET SEEK_SET
-#define L_INCR SEEK_CUR
-#define L_XTND SEEK_END
+#if defined(_BSD_SOURCE)
+#define L_SET 0
+#define L_INCR 1
+#define L_XTND 2
int truncate(const char *, off_t);
int ftruncate(int, off_t);
int truncate(const char *, off_t);
int ftruncate(int, off_t);
#define F_OK 0
#define R_OK 4
#define W_OK 2
#define X_OK 1
#define F_OK 0
#define R_OK 4
#define W_OK 2
#define X_OK 1
int access(const char *, int);
int faccessat(int, const char *, int, int);
int access(const char *, int);
int faccessat(int, const char *, int, int);
long sysconf(int);
size_t confstr(int, char *, size_t);
long sysconf(int);
size_t confstr(int, char *, size_t);
#define F_ULOCK 0
#define F_LOCK 1
#define F_TLOCK 2
#define F_TEST 3
#define F_ULOCK 0
#define F_LOCK 1
#define F_TLOCK 2
#define F_TEST 3
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
int lockf(int, int, off_t);
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
int lockf(int, int, off_t);