Re: build environment: a different makefile - Mailing list pgsql-hackers

From Zdenek Kotala
Subject Re: build environment: a different makefile
Date
Msg-id 47AAD88F.7000400@sun.com
Whole thread Raw
In response to Re: build environment: a different makefile  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: build environment: a different makefile
List pgsql-hackers
Peter Eisentraut napsal(a):
> Paul van den Bogaard wrote:
>> The SunStudio compiler we are using fortunately has an option for  
>> this. Unfortunately there are restrictions. One restriction I face is  
>> its inability to deal with "ld -r"s. These are used in the build  
>> environment to create all the SUBSYS.o object files.
>>
>> I was hoping someone in the community already has a makefile that  
>> "just" creates object files from C-sources directly that I can use to  
>> try out the effect of in-lining to the performance of postgres.
> 
> I don't know if anyone has a makefile for it, but the following seems to work
> for me:
> 
> pgsql/src/backend$ cc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration-after-statement
-Wendif-labels-fno-strict-aliasing -g -L../../src/port  -Wl,-rpath,'/home/peter/devel/pg83/pg-install/lib' -Wl,-E
$(find-name "*.o" | grep -v SUBSYS | grep -v conversion_procs) ../../src/timezone/SUBSYS.o
../../src/port/libpgport_srv.a-lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lcrypt -ldl -lm -lldap -o postgres
 
> 
> If you find that the optimizations you are hoping for are useful, I'm sure
> we could put an option of that sort somewhere in the makefiles.

Peter,
Suns studio performs inline optimization on -xO3 level. Optimization levels are 
different from GCC. Maximal level is -xO5. I think Paul plays with xipo flag 
which requires at least -xO4.

See
http://docs.sun.com/app/docs/doc/819-5265/bjapp?a=view
    Zdenek


pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: [BUGS] possible bug windows setup
Next
From: Paul van den Bogaard
Date:
Subject: Re: build environment: a different makefile