Обсуждение: /usr/include/pgsql/os.h does not exist
Charles Choi (cchoi@sonicsinc.com) reports a bug with a severity of 1 The lower the number the more severe it is. Short Description /usr/include/pgsql/os.h does not exist Long Description I am trying to install Postgresql 7.0.2 using the RPM on RedHat 6.2. In the example code section I have shown the contents of the directory /usr/include/pgsql I have used the RPM postgresql-devel-7_0_2-2_i386.rpm. I have installed both the version on your site and yet again from the RedHat site. Same problem. Hope you can fix this - thanks! -Charles Sample Code socworks1 /usr/include/pgsql>ls -al total 224 drwxr-xr-x 17 root root 4096 Sep 5 20:13 ./ drwxr-xr-x 44 root root 8192 Sep 5 20:13 ../ drwxr-xr-x 2 root root 4096 Sep 5 20:13 access/ -rw-r--r-- 1 root root 19779 Jun 12 14:21 c.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 catalog/ drwxr-xr-x 2 root root 4096 Sep 5 20:13 commands/ -rw-r--r-- 1 root root 16412 Jun 12 14:21 config.h -r--r--r-- 1 root root 1261 Jun 12 14:20 ecpgerrno.h -r--r--r-- 1 root root 1233 Jun 12 14:20 ecpglib.h -r--r--r-- 1 root root 1856 Jun 12 14:20 ecpgtype.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 executor/ -r--r--r-- 1 root root 25046 Jun 12 14:20 fmgr.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 iodbc/ drwxr-xr-x 2 root root 4096 Sep 5 20:13 lib/ -r--r--r-- 1 root root 403 Jun 12 14:20 libpgeasy.h -r--r--r-- 1 root root 650 Jun 12 14:20 libpgtcl.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 libpq/ drwxr-xr-x 2 root root 4096 Sep 5 20:13 libpq++/ -r--r--r-- 1 root root 940 Jun 12 14:20 libpq++.h -r--r--r-- 1 root root 12383 Jun 12 14:20 libpq-fe.h -r--r--r-- 1 root root 12378 Jun 12 14:20 libpq-int.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 nodes/ lrwxrwxrwx 1 root root 25 Sep 5 20:13 os.h -> .././include/port/linux.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 parser/ drwxr-xr-x 3 root root 4096 Sep 5 20:13 port/ -rw-r--r-- 1 root root 7268 Jun 12 14:21 postgres.h -rw-r--r-- 1 root root 1222 Jun 12 14:21 postgres_ext.h -r--r--r-- 1 root root 5484 Jun 12 14:20 pqexpbuffer.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 rewrite/ -r--r--r-- 1 root root 943 Jun 12 14:20 sql3types.h -r--r--r-- 1 root root 1020 Jun 12 14:20 sqlca.h drwxr-xr-x 2 root root 4096 Sep 5 20:13 storage/ drwxr-xr-x 2 root root 4096 Sep 5 20:13 tcop/ drwxr-xr-x 2 root root 4096 Sep 5 20:13 utils/ socworks1 /usr/include/pgsql>ls os.h os.h@ socworks1 /usr/include/pgsql>uname -a Linux socworks1 2.2.16-3 #1 Mon Jun 19 18:49:25 EDT 2000 i686 unknown socworks1 /usr/include/pgsql>more os.h os.h: No such file or directory No file was uploaded with this report
pgsql-bugs@postgresql.org writes:
> /usr/include/pgsql/os.h does not exist
Yeah, this is a recently-noticed defect in the RPM distribution.
A symlink was installed as a symlink, instead of as the referenced
file.
Until a new RPM can be issued, the simplest fix is to replace the
os.h symlink with the correct contents of port/linux.h (attached).
regards, tom lane
/* __USE_POSIX, __USE_BSD, and __USE_BSD_SIGNAL used to be defined either
here or with -D compile options, but __ macros should be set and used by C
library macros, not Postgres code. __USE_POSIX is set by features.h,
__USE_BSD is set by bsd/signal.h, and __USE_BSD_SIGNAL appears not to
be used.
*/
#define JMP_BUF
#define USE_POSIX_TIME
#if defined(__i386__)
typedef unsigned char slock_t;
#define HAS_TEST_AND_SET
#elif defined(__sparc__)
typedef unsigned char slock_t;
#define HAS_TEST_AND_SET
#elif defined(__powerpc__)
typedef unsigned int slock_t;
#define HAS_TEST_AND_SET
#elif defined(__alpha__)
typedef long int slock_t;
#define HAS_TEST_AND_SET
#elif defined(__mips__)
typedef unsigned int slock_t;
#define HAS_TEST_AND_SET
#elif defined(__arm__)
typedef unsigned char slock_t
#define HAS_TEST_AND_SET
#endif
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
#ifdef HAVE_INT_TIMEZONE
#undef HAVE_INT_TIMEZONE
#endif
#endif
#if defined(__powerpc__)
#undef HAVE_INT_TIMEZONE
#endif