Обсуждение: libpg++ under SUSE Linux 7.0 (problem with link os.h)

Поиск
Список
Период
Сортировка

libpg++ under SUSE Linux 7.0 (problem with link os.h)

От
"Markus Jung"
Дата:
Hi all,

I installed Postgres with the SUSE distribution 7.0 and it works fine.

However if I try to use the libpg++ library and link it to my C++ programm I
receive some error message about the include file.

The "libpg++.h" contains several other include files which again contain
other include files. I went through the include files and came to a link
called "os.h" which links to "linux.h".

I could not find this "linux.h" on my system and was wondering whether this
file should be part of my linux distribution or comes with Postgres?

Where should I link os.h to?


Thanks for the help

Markus




Re: libpg++ under SUSE Linux 7.0 (problem with link os.h)

От
Cedar Cox
Дата:
I believe this is referring to the linux.h in the linux kernel source
code.  If you don't have the kernel source installed and can do so easily,
do it.  If not, maybe someone else has a trick up their sleeve.

-Cedar


On Mon, 22 Jan 2001, Markus Jung wrote:

> Hi all,
> 
> I installed Postgres with the SUSE distribution 7.0 and it works fine.
> 
> However if I try to use the libpg++ library and link it to my C++ programm I
> receive some error message about the include file.
> 
> The "libpg++.h" contains several other include files which again contain
> other include files. I went through the include files and came to a link
> called "os.h" which links to "linux.h".
> 
> I could not find this "linux.h" on my system and was wondering whether this
> file should be part of my linux distribution or comes with Postgres?
> 
> Where should I link os.h to?
> 
> 
> Thanks for the help
> 
> Markus
> 
> 
> 



Re: libpg++ under SUSE Linux 7.0 (problem with link os.h)

От
Tom Lane
Дата:
Cedar Cox <cedarc@visionforisrael.com> writes:
> I believe this is referring to the linux.h in the linux kernel source
> code.

No, it's referring to the Postgres file src/include/port/linux.h.  There
is a packaging error in the 7.0 RPMs that causes them to create the
installed os.h as a symlink, rather than a copy of the port .h file as
it should be.

Markus, you can replace os.h with the attached (7.0's linux.h file).
        regards, tom lane


/* __USE_POSIX, __USE_BSD, and __USE_BSD_SIGNAL used to be defined either  here or with -D compile options, but __
macrosshould be set and used by C  library macros, not Postgres code.  __USE_POSIX is set by features.h,  __USE_BSD is
setby 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