public inbox for [email protected]  
help / color / mirror / Atom feed
[Pljava-dev] Build Errors while building PL/Java 1.4.0 on Solaris 10
5+ messages / 0 participants
[nested] [flat]

* [Pljava-dev] Build Errors while building PL/Java 1.4.0 on Solaris 10
@ 2009-03-18 19:08  
  0 siblings, 1 reply; 5+ messages in thread

From:  @ 2009-03-18 19:08 UTC (permalink / raw)

> Hi,
> 
> I had the following error while building PL/Java 1.4.0 on Solaris 10:
> 
> -bash-3.00$ gmake
> gmake[1]: Entering directory
> `/opt/voyence/db/controldb/pljava-1.4.0/build/classes/pljava'
> javac -source 1.4 -target 1.4 -d . <java sources>
> jar cf /opt/voyence/db/controldb/pljava-1.4.0/build/pljava.jar .
> javah -classpath . -d /opt/voyence/db/controldb/pljava-1.4.0/build/jni
> <jni classes>
> gmake[1]: Leaving directory
> `/opt/voyence/db/controldb/pljava-1.4.0/build/classes/pljava'
> gmake[1]: Entering directory
> `/opt/voyence/db/controldb/pljava-1.4.0/build/classes/deploy'
> javac -source 1.4 -target 1.4 -d . <java sources>
> jar cmf
> /opt/voyence/db/controldb/pljava-1.4.0/src/java/deploy/META-INF/manife
> st.txt /opt/voyence/db/controldb/pljava-1.4.0/build/deploy.jar .
> gmake[1]: Leaving directory
> `/opt/voyence/db/controldb/pljava-1.4.0/build/classes/deploy'
> gmake[1]: Entering directory
> `/opt/voyence/db/controldb/pljava-1.4.0/build/objs'
> gcc -c -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline
> -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
> -fwrapv -fPIC  -I.
> -I/opt/voyence/db/controldb/include/postgresql/server
> -I/opt/voyence/db/controldb/include/postgresql/internal -I/usr/include
> -I/usr/local/ssl/include -I/usr/local/include
> -DPKGLIBDIR=\"/opt/voyence/db/controldb/lib/postgresql\"
> -I/opt/voyence/db/controldb/pljava-1.4.0/src/C/include
> -I/opt/voyence/db/controldb/pljava-1.4.0/build/jni -DPGSQL_MAJOR_VER=8
> -DPGSQL_MINOR_VER=2 -DPGSQL_PATCH_VER=11
> -I"/usr/java/jdk1.5.0_13/include"
> -I"/usr/java/jdk1.5.0_13/include/solaris"
> /opt/voyence/db/controldb/pljava-1.4.0/src/C/pljava/type/BigDecimal.c
> -o type/BigDecimal.o
> In file included from
> /opt/voyence/db/controldb/include/postgresql/server/c.h:826,
>                  from
> /opt/voyence/db/controldb/include/postgresql/server/postgres.h:48,
>                  from
> /opt/voyence/db/controldb/pljava-1.4.0/src/C/pljava/type/BigDecimal.c:
> 9:
> /opt/voyence/db/controldb/include/postgresql/server/port.h:377: error:
> conflicting types for 'unsetenv'
> /usr/include/stdlib.h:188: error: previous declaration of 'unsetenv'
> was here
> /opt/voyence/db/controldb/include/postgresql/server/port.h:377: error:
> conflicting types for 'unsetenv'
> /usr/include/stdlib.h:188: error: previous declaration of 'unsetenv'
> was here
> gmake[1]: *** [type/BigDecimal.o] Error 1
> gmake[1]: Leaving directory
> `/opt/voyence/db/controldb/pljava-1.4.0/build/objs'
> gmake: *** [c_all] Error 2
> 
> 
> The way I fixed the buiild error was to modify the Makefile under:
> 
> src/C/pljava/Makefile:
> 
> -bash-3.00$ diff src/C/pljava/Makefile src/C/pljava/Makefile.orig
> 23c23
> <       $(CC) -c $(CFLAGS) $(CPPFLAGS) -DHAVE_UNSETENV $< -o $@
> ---
> >       $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
> 
> Now the discrepency is that 
> 
> 
> /usr/include/stdlib.h has:
> 
> extern int unsetenv(const char *);
> 
> 
> And 
> 
> $DBHOME/include/postgresql/server/port.h has:
> 
> #ifndef HAVE_UNSETENV
> extern void unsetenv(const char *name);
> #endif
> 
> 
> I chose to do the -DHAVE_UNSETENV  since the functions only differ in
> the return type. Did others who built face the same issue? What
> approach was taken to build PL/Java 1.4.0 on Solaris?
> 
> 
> Details of the system: 
> 
> -bash-3.00$ postmaster --version
> postgres (PostgreSQL) 8.2.11
>  uname -a
> SunOS ############# 5.10 Generic_118833-17 sun4u sparc
> SUNW,Sun-Fire-V240
> 
> Janardhan Prabhakara
> Software Engineer
> EMC Corporation




^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* [Pljava-dev] Build Errors while building PL/Java 1.4.0 on Solaris 10
@ 2009-03-18 21:29  
  parent: 
  0 siblings, 1 reply; 5+ messages in thread

From:  @ 2009-03-18 21:29 UTC (permalink / raw)

Prabhakara_Janardhan at emc.com wrote:
>> Hi,
>>
>> I had the following error while building PL/Java 1.4.0 on Solaris 10:
>>
>> /opt/voyence/db/controldb/pljava-1.4.0/src/C/pljava/type/BigDecimal.c
>> -o type/BigDecimal.o
>> In file included from
>> /opt/voyence/db/controldb/include/postgresql/server/c.h:826,
>>                  from
>> /opt/voyence/db/controldb/include/postgresql/server/postgres.h:48,
>>                  from
>> /opt/voyence/db/controldb/pljava-1.4.0/src/C/pljava/type/BigDecimal.c:
>> 9:
>> /opt/voyence/db/controldb/include/postgresql/server/port.h:377: error:
>> conflicting types for 'unsetenv'
>> /usr/include/stdlib.h:188: error: previous declaration of 'unsetenv'
>> was here
>> /opt/voyence/db/controldb/include/postgresql/server/port.h:377: error:
>> conflicting types for 'unsetenv'
>> /usr/include/stdlib.h:188: error: previous declaration of 'unsetenv'
>> was here
>> gmake[1]: *** [type/BigDecimal.o] Error 1
>> gmake[1]: Leaving directory
>> `/opt/voyence/db/controldb/pljava-1.4.0/build/objs'
>> gmake: *** [c_all] Error 2
>>
>>
>> The way I fixed the buiild error was to modify the Makefile under:
>>
>> src/C/pljava/Makefile:
>>
>> -bash-3.00$ diff src/C/pljava/Makefile src/C/pljava/Makefile.orig
>> 23c23
>> <       $(CC) -c $(CFLAGS) $(CPPFLAGS) -DHAVE_UNSETENV $< -o $@
>> ---
>>>       $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
>> Now the discrepency is that 
>>
>>
>> /usr/include/stdlib.h has:
>>
>> extern int unsetenv(const char *);
>>
>>
>> And 
>>
>> $DBHOME/include/postgresql/server/port.h has:
>>
>> #ifndef HAVE_UNSETENV
>> extern void unsetenv(const char *name);
>> #endif
>>
>>
>> I chose to do the -DHAVE_UNSETENV  since the functions only differ in
>> the return type. Did others who built face the same issue? What
>> approach was taken to build PL/Java 1.4.0 on Solaris?
>>
>>

The definition of HAVE_UNSETENV should be in 
$DBHOME/include/postgresql/server/pg_config.h and matches up with what 
the server compile environment found.  This could be different than the 
pljava compile environment if the server was built on a different 
machine or if additional libraries were installed after the server 
build.  If you build the server and then immediately build pljava 
against that server it should definitely work.  Can you clarify how your 
server was built?

Kris Jurka




^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* [Pljava-dev] Build Errors while building PL/Java 1.4.0 on Solaris 10
@ 2009-03-18 23:50  
  parent: 
  0 siblings, 2 replies; 5+ messages in thread

From:  @ 2009-03-18 23:50 UTC (permalink / raw)

 Hi,

Yes! The server was built elsewhere... Are you saying that PL/Java
should always be built on the same server as the server itself? That is
kind of a severe restriction, esp. when we have pg_config etc - to tell
us all the flags that were used and essentially that should be all that
should be known. Anyhow, I was quite convinced that the way I built it
was fine - was just wondering why I got that error in the first place.

Thanks,
Janardhan

-----Original Message-----
From: Kris Jurka [mailto:books at ejurka.com] 
Sent: Wednesday, March 18, 2009 4:30 PM
To: Prabhakara, Janardhan
Cc: pljava-dev at pgfoundry.org
Subject: Re: [Pljava-dev] Build Errors while building PL/Java 1.4.0 on
Solaris 10

Prabhakara_Janardhan at emc.com wrote:
>> Hi,
>>
>> I had the following error while building PL/Java 1.4.0 on Solaris 10:
>>
>> /opt/voyence/db/controldb/pljava-1.4.0/src/C/pljava/type/BigDecimal.c
>> -o type/BigDecimal.o
>> In file included from
>> /opt/voyence/db/controldb/include/postgresql/server/c.h:826,
>>                  from
>> /opt/voyence/db/controldb/include/postgresql/server/postgres.h:48,
>>                  from
>>
/opt/voyence/db/controldb/pljava-1.4.0/src/C/pljava/type/BigDecimal.c:
>> 9:
>> /opt/voyence/db/controldb/include/postgresql/server/port.h:377:
error:
>> conflicting types for 'unsetenv'
>> /usr/include/stdlib.h:188: error: previous declaration of 'unsetenv'
>> was here
>> /opt/voyence/db/controldb/include/postgresql/server/port.h:377:
error:
>> conflicting types for 'unsetenv'
>> /usr/include/stdlib.h:188: error: previous declaration of 'unsetenv'
>> was here
>> gmake[1]: *** [type/BigDecimal.o] Error 1
>> gmake[1]: Leaving directory
>> `/opt/voyence/db/controldb/pljava-1.4.0/build/objs'
>> gmake: *** [c_all] Error 2
>>
>>
>> The way I fixed the buiild error was to modify the Makefile under:
>>
>> src/C/pljava/Makefile:
>>
>> -bash-3.00$ diff src/C/pljava/Makefile src/C/pljava/Makefile.orig
>> 23c23
>> <       $(CC) -c $(CFLAGS) $(CPPFLAGS) -DHAVE_UNSETENV $< -o $@
>> ---
>>>       $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
>> Now the discrepency is that 
>>
>>
>> /usr/include/stdlib.h has:
>>
>> extern int unsetenv(const char *);
>>
>>
>> And 
>>
>> $DBHOME/include/postgresql/server/port.h has:
>>
>> #ifndef HAVE_UNSETENV
>> extern void unsetenv(const char *name);
>> #endif
>>
>>
>> I chose to do the -DHAVE_UNSETENV  since the functions only differ in
>> the return type. Did others who built face the same issue? What
>> approach was taken to build PL/Java 1.4.0 on Solaris?
>>
>>

The definition of HAVE_UNSETENV should be in 
$DBHOME/include/postgresql/server/pg_config.h and matches up with what 
the server compile environment found.  This could be different than the 
pljava compile environment if the server was built on a different 
machine or if additional libraries were installed after the server 
build.  If you build the server and then immediately build pljava 
against that server it should definitely work.  Can you clarify how your

server was built?

Kris Jurka





^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* [Pljava-dev] Build Errors while building PL/Java 1.4.0 on	Solaris 10
@ 2009-03-19 00:08  
  parent: 
  1 sibling, 0 replies; 5+ messages in thread

From:  @ 2009-03-19 00:08 UTC (permalink / raw)

Prabhakara_Janardhan at emc.com wrote:
> 
> Yes! The server was built elsewhere... Are you saying that PL/Java
> should always be built on the same server as the server itself? That is
> kind of a severe restriction, esp. when we have pg_config etc - to tell
> us all the flags that were used and essentially that should be all that
> should be known. Anyhow, I was quite convinced that the way I built it
> was fine - was just wondering why I got that error in the first place.
> 

So your situation is:  postgresql was built on server A which does not 
have unsetenv and must use the postgresql provided built in version. 
pljava was built on Server B which does have unsetenv and therefore 
chokes when trying to include the postgresql built in version.  I'm not 
saying that you must build all the software on the server that it will 
be deployed upon, but you're asking for trouble if they aren't the same. 
  Consider what would happen if you did this in reverse, building 
postgresql on Server B and deploying it on Server A, it wouldn't even 
run because Server A doesn't have unsetenv and postgresql got built 
without its internal version because it was available on Server B.

Kris Jurka




^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* [Pljava-dev] Build Errors while building PL/Java 1.4.0 on	Solaris 10
@ 2009-03-19 08:21  
  parent: 
  1 sibling, 0 replies; 5+ messages in thread

From:  @ 2009-03-19 08:21 UTC (permalink / raw)

Prabhakara_Janardhan at emc.com wrote:
>  Hi,
>
> ... That is kind of a severe restriction,
The restriction is that the configuration must be the same in both 
places. That's kind of natural when building binaries, don't you think?

Regards,
Thomas Hallgren





^ permalink  raw  reply  [nested|flat] 5+ messages in thread


end of thread, other threads:[~2009-03-19 08:21 UTC | newest]

Thread overview: 5+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2009-03-18 19:08 [Pljava-dev] Build Errors while building PL/Java 1.4.0 on Solaris 10 
2009-03-18 21:29 ` 
2009-03-18 23:50   ` 
2009-03-19 00:08     ` [Pljava-dev] Build Errors while building PL/Java 1.4.0 on	Solaris 10 
2009-03-19 08:21     ` [Pljava-dev] Build Errors while building PL/Java 1.4.0 on	Solaris 10 

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox