Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-02-20 Thread Bruce Momjian

OK, I have made Solaris gcc the same as Linux in Makefile.shlib, patch
attached.

I am not backpatching this.  We will get this tested for 8.3.

---

Jignesh K. Shah wrote:
 I dont think we solved this.. But I think the way to put -m64 should be same 
 as in Linux and Solaris 
 and not different.
 
 Thanks.
 Regards,
 Jignesh
 
 
 Tom Lane wrote:
  Peter Eisentraut [EMAIL PROTECTED] writes:
  Am Mittwoch, 17. Januar 2007 17:12 schrieb Tom Lane:
  Jignesh K. Shah [EMAIL PROTECTED] writes:
  simple if I use -m64 for 64 bit then all end binaries are generated
  64-bit and the shared libraries are generated 32-bit and the compilation
  fails (ONLY ON SOLARIS) since that particular line is only for the
  condition Solaris AND gcc.
 
  If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it
  and generates shared libraries 64-bit and the compile continues..
  Hmm ... I see we're doing it that way already for some other platforms,
  but I can't help thinking it's a kluge.  Wouldn't the correct answer be
  that -m64 needs to be in LDFLAGS?
  
  The correct answer may be to put -m64 into CC.
  
  Did we conclude that that was a satisfactory solution, or is this still
  a live patch proposal?
  
  If -m64 in CC is the right solution, it should probably be mentioned in
  FAQ_Solaris.
  
  regards, tom lane
 
 ---(end of broadcast)---
 TIP 3: Have you checked our extensive FAQ?
 
http://www.postgresql.org/docs/faq

-- 
  Bruce Momjian  [EMAIL PROTECTED]  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/Makefile.shlib
===
RCS file: /cvsroot/pgsql/src/Makefile.shlib,v
retrieving revision 1.108
diff -c -c -r1.108 Makefile.shlib
*** src/Makefile.shlib	11 Feb 2007 19:31:45 -	1.108
--- src/Makefile.shlib	20 Feb 2007 22:45:06 -
***
*** 191,197 
  
  ifeq ($(PORTNAME), solaris)
ifeq ($(GCC), yes)
! LINK.shared		= $(CC) -shared
else
  # CFLAGS added for X86_64
  LINK.shared		= $(CC) -G $(CFLAGS)
--- 191,197 
  
  ifeq ($(PORTNAME), solaris)
ifeq ($(GCC), yes)
! LINK.shared		= $(COMPILER) -shared # $(COMPILER) needed for -m64
else
  # CFLAGS added for X86_64
  LINK.shared		= $(CC) -G $(CFLAGS)

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-02-01 Thread Jignesh K. Shah
I dont think we solved this.. But I think the way to put -m64 should be same as in Linux and Solaris 
and not different.


Thanks.
Regards,
Jignesh


Tom Lane wrote:

Peter Eisentraut [EMAIL PROTECTED] writes:

Am Mittwoch, 17. Januar 2007 17:12 schrieb Tom Lane:

Jignesh K. Shah [EMAIL PROTECTED] writes:

simple if I use -m64 for 64 bit then all end binaries are generated
64-bit and the shared libraries are generated 32-bit and the compilation
fails (ONLY ON SOLARIS) since that particular line is only for the
condition Solaris AND gcc.

If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it
and generates shared libraries 64-bit and the compile continues..

Hmm ... I see we're doing it that way already for some other platforms,
but I can't help thinking it's a kluge.  Wouldn't the correct answer be
that -m64 needs to be in LDFLAGS?



The correct answer may be to put -m64 into CC.


Did we conclude that that was a satisfactory solution, or is this still
a live patch proposal?

If -m64 in CC is the right solution, it should probably be mentioned in
FAQ_Solaris.

regards, tom lane


---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

  http://www.postgresql.org/docs/faq


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-31 Thread Tom Lane
Peter Eisentraut [EMAIL PROTECTED] writes:
 Am Mittwoch, 17. Januar 2007 17:12 schrieb Tom Lane:
 Jignesh K. Shah [EMAIL PROTECTED] writes:
 simple if I use -m64 for 64 bit then all end binaries are generated
 64-bit and the shared libraries are generated 32-bit and the compilation
 fails (ONLY ON SOLARIS) since that particular line is only for the
 condition Solaris AND gcc.
 
 If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it
 and generates shared libraries 64-bit and the compile continues..
 
 Hmm ... I see we're doing it that way already for some other platforms,
 but I can't help thinking it's a kluge.  Wouldn't the correct answer be
 that -m64 needs to be in LDFLAGS?

 The correct answer may be to put -m64 into CC.

Did we conclude that that was a satisfactory solution, or is this still
a live patch proposal?

If -m64 in CC is the right solution, it should probably be mentioned in
FAQ_Solaris.

regards, tom lane

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


[HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-17 Thread Jignesh K. Shah

Hello All,

When I compile with gcc on Solaris with -m64 flags, all shared lbiraries fail.

Can someone fix the following in Makefile.shlib


ifeq ($(PORTNAME), solaris)
  ifeq ($(GCC), yes)
LINK.shared = $(CC) -shared
  else
LINK.shared = $(CC) -G $(CFLAGS)# CFLAGS added for X86_64
  endif


It should be

ifeq ($(PORTNAME), solaris)
  ifeq ($(GCC), yes)
LINK.shared = $(COMPILER) -shared
  else
LINK.shared = $(CC) -G $(CFLAGS)# CFLAGS added for X86_64
  endif


Thanks.
Regards,
Jignesh

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-17 Thread Tom Lane
Jignesh K. Shah [EMAIL PROTECTED] writes:
 It should be
  LINK.shared = $(COMPILER) -shared

Why?  What's the difference, and why is it appropriate to fix it that
way instead of by changing CFLAGS?

regards, tom lane

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-17 Thread Jignesh K. Shah
simple if I use -m64 for 64 bit then all end binaries are generated 64-bit and the shared libraries 
are generated 32-bit and the compilation fails (ONLY ON SOLARIS) since that particular line is only 
for the condition Solaris AND gcc.


If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it and generates shared 
libraries 64-bit and the compile continues..


I just tested it out.

-Jignesh


Tom Lane wrote:

Jignesh K. Shah [EMAIL PROTECTED] writes:

It should be
 LINK.shared = $(COMPILER) -shared


Why?  What's the difference, and why is it appropriate to fix it that
way instead of by changing CFLAGS?

regards, tom lane


---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-17 Thread Tom Lane
Jignesh K. Shah [EMAIL PROTECTED] writes:
 simple if I use -m64 for 64 bit then all end binaries are generated 64-bit 
 and the shared libraries 
 are generated 32-bit and the compilation fails (ONLY ON SOLARIS) since that 
 particular line is only 
 for the condition Solaris AND gcc.

 If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it and 
 generates shared 
 libraries 64-bit and the compile continues..

Hmm ... I see we're doing it that way already for some other platforms,
but I can't help thinking it's a kluge.  Wouldn't the correct answer be
that -m64 needs to be in LDFLAGS?

regards, tom lane

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-17 Thread Peter Eisentraut
Am Mittwoch, 17. Januar 2007 17:12 schrieb Tom Lane:
 Jignesh K. Shah [EMAIL PROTECTED] writes:
  simple if I use -m64 for 64 bit then all end binaries are generated
  64-bit and the shared libraries are generated 32-bit and the compilation
  fails (ONLY ON SOLARIS) since that particular line is only for the
  condition Solaris AND gcc.
 
  If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it
  and generates shared libraries 64-bit and the compile continues..

 Hmm ... I see we're doing it that way already for some other platforms,
 but I can't help thinking it's a kluge.  Wouldn't the correct answer be
 that -m64 needs to be in LDFLAGS?

The correct answer may be to put -m64 into CC.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [HACKERS] fixing Makefile.shlib for solaris/gcc with -m64 flag

2007-01-17 Thread Jignesh K. Shah

I tried that but it didn't work.

Also on Solaris it typically uses the ld in /usr/ccs/bin/ld which uses -64 as its flag for 64 bit 
and if you put LDFLAGS out there it will fail as unrecognized unless gcc parses -64 to -m64.


Putting -m64 in CC will do the workaround but then I guess that's what CFLAGS 
is for..

Regards,
Jignesh


Tom Lane wrote:

Jignesh K. Shah [EMAIL PROTECTED] writes:
simple if I use -m64 for 64 bit then all end binaries are generated 64-bit and the shared libraries 
are generated 32-bit and the compilation fails (ONLY ON SOLARIS) since that particular line is only 
for the condition Solaris AND gcc.


If I use the COMPILER which is CC + CFLAGS it passes -m64 properly to it and generates shared 
libraries 64-bit and the compile continues..


Hmm ... I see we're doing it that way already for some other platforms,
but I can't help thinking it's a kluge.  Wouldn't the correct answer be
that -m64 needs to be in LDFLAGS?

regards, tom lane


---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster