Re: Lessons learned on how to build 7.0.2 on AIX 4.x - Mailing list pgsql-hackers
From | rsand@vgalleries.com (Richard Sand) |
---|---|
Subject | Re: Lessons learned on how to build 7.0.2 on AIX 4.x |
Date | |
Msg-id | 04bd01bfe7a8$80713cd0$0101010a@sandbox.vgalleries.com Whole thread Raw |
In response to | Lessons learned on how to build 7.0.2 on AIX 4.x (rsand@vgalleries.com (Richard Sand)) |
Responses |
Re: Lessons learned on how to build 7.0.2 on AIX 4.x
|
List | pgsql-hackers |
>> 1) First of all, you can't use IBM's make utility, gotta use GNU make. > >Quoth the installation instructions: > >"Building PostgreSQL requires GNU make. It will not work with other make >programs." Yes I was just making sure all of the AIX instructions were combined. :) >> you have to use the command: >> >> ./configure --with-template=aix_gcc > >That has got to be a bug. The configure script should look for gcc >first. Can you show the relevant lines of configure output (checking for >cc... etc), when you don't use that option? It hung up on line 1226. I just tested this again and can confirm, it will not find gcc unless I explicitly use this switch. The output from config.log is: configure:1102: checking for gcc configure:1215: checking whether the C compiler (xlc -qmaxmem=16384 -qhalt=w -qs rcmsg -qlanglvl=extended -qlonglong ) works configure:1231: xlc -o conftest -qmaxmem=16384 -qhalt=w -qsrcmsg -qlanglvl=exten ded -qlonglong conftest.c 1>&5 ./configure[1230]: xlc: not found configure: failed program was: #line 1226 "configure" #include "confdefs.h" main(){return(0);} >> Making postgres.imp >> ./backend/port/aix/mkldexport.sh postgres /usr/local/bin > postgres.imp nm: postgres: 0654-200 Cannot open the specified file. >> nm: A file or directory in the path name does not exist. >> >> This is apparently a bug in the make scripts for Postgres. > >Can you describe how to fix it? The AIX shared library stuff is an enigma >to me. Well, all I did was do gmake in another directory (./src/backend) and then I copy the postgres.imp file from that directory back to ./src, and then the make can continue OK. So its got to be a simple bug in the makefile for ./src that works when you build postgres.imp in another directory. I don't know my way around makefiles except for the very basics, so I'm sorry I can't help more... I'll run more tests if you'd like, let me know what you'd like to see. > >> I hand edited the Makefile.global file in ./src and commented out the >> line "HAVE_Cplusplus=true" > >Quoth configure --help: > >" --without-CXX prevent building C++ code" Ah, you are wise. :) Yes, that switch is better. BUT, since I do have g++ installed and working, why can't the C++ code be built in the first place? > > >> Oh, and as the make output scrolled by, I see that it failed as well >> building some plpsql stuff, but it was non fatal. > >If it failed then it was fatal, and vice versa. Please elaborate. Here is an excerpt from stdout/err when I do a gmake all from ./src. You'll notice that it starts to build plpgsql and then dies, but the make continues. I don't know if this is vital (the procedure stuff?)- I haven't tried actually doing anything with Postgres yet but I do have postmaster running, I created a database, and I can connect to it. Of course, the regression test failed because I don't have plpgsql! Anyway, here's the except: gmake[2]: Entering directory `/usr/src/postgresql-7.0.2/src/pl/plpgsql' gmake -C src all gmake[3]: Entering directory `/usr/src/postgresql-7.0.2/src/pl/plpgsql/src' ../../../backend/port/aix/mkldexport.sh libplpgsql.a /usr/local/pgsql/lib > libp lpgsql.exp ld -H512 -bM:SRE -bI:../../../backend/postgres.imp -bE:libplpgsql.exp -o libplpg sql.so libplpgsql.a -lPW -lcrypt -lld -lnsl -ldl -lm -lcurses -lc ld: 0711-327 WARNING: Entry point not found: __start ld: 0711-317 ERROR: Undefined symbol: CurrentMemoryContext ld: 0711-317 ERROR: Undefined symbol: .MemoryContextAlloc ld: 0711-317 ERROR: Undefined symbol: .MemoryContextFree ld: 0711-317 ERROR: Undefined symbol: .MemoryContextRealloc ld: 0711-317 ERROR: Undefined symbol: .elog ld: 0711-317 ERROR: Undefined symbol: .SearchSysCacheTuple ld: 0711-317 ERROR: Undefined symbol: .textout ld: 0711-317 ERROR: Undefined symbol: .nameout ld: 0711-317 ERROR: Undefined symbol: .fmgr_info ld: 0711-317 ERROR: Undefined symbol: .int2in ld: 0711-317 ERROR: Undefined symbol: .SPI_connect ld: 0711-317 ERROR: Undefined symbol: CurrentTriggerData ld: 0711-317 ERROR: Undefined symbol: .SPI_finish ld: 0711-317 ERROR: Undefined symbol: Warn_restart ld: 0711-317 ERROR: Undefined symbol: .SPI_palloc ld: 0711-317 ERROR: Undefined symbol: .textin ld: 0711-317 ERROR: Undefined symbol: .namein ld: 0711-317 ERROR: Undefined symbol: .get_temp_rel_by_physicalname ld: 0711-317 ERROR: Undefined symbol: .SPI_gettypeid ld: 0711-317 ERROR: Undefined symbol: .SPI_copytuple ld: 0711-317 ERROR: Undefined symbol: SPI_processed ld: 0711-317 ERROR: Undefined symbol: SPI_tuptable ld: 0711-317 ERROR: Undefined symbol: fmgr_pl_finfo ld: 0711-317 ERROR: Undefined symbol: .SPI_fnumber ld: 0711-317 ERROR: Undefined symbol: .SPI_getvalue ld: 0711-317 ERROR: Undefined symbol: .SPI_prepare ld: 0711-317 ERROR: Undefined symbol: .SPI_saveplan ld: 0711-317 ERROR: Undefined symbol: .SPI_getbinval ld: 0711-317 ERROR: Undefined symbol: .SPI_execp ld: 0711-317 ERROR: Undefined symbol: .heap_formtuple ld: 0711-317 ERROR: Undefined symbol: .newNode ld: 0711-317 ERROR: Undefined symbol: .SPI_push ld: 0711-317 ERROR: Undefined symbol: .ExecEvalExpr ld: 0711-317 ERROR: Undefined symbol: .SPI_pop ld: 0711-317 ERROR: Undefined symbol: .length ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. gmake[3]: *** [libplpgsql.so] Error 8 gmake[3]: Leaving directory `/usr/src/postgresql-7.0.2/src/pl/plpgsql/src' gmake[2]: [all] Error 2 (ignored) gmake[2]: Leaving directory `/usr/src/postgresql-7.0.2/src/pl/plpgsql' gmake[1]: Leaving directory `/usr/src/postgresql-7.0.2/src/pl' All of PostgreSQL is successfully made. Ready to install. I hope this helps! -Richard
pgsql-hackers by date: