Обсуждение: AW: AW: User functions and AIX

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

AW: AW: User functions and AIX

От
Zeugswetter Andreas SB
Дата:
> > > IBM is trying to find the answer to this but I thought I would throw ...
> 
> > Tell me your link line, OS and compiler version. 
> > And have you forgotten to include -bI:postgres.imp ?
> 
> Bingo!  I can't believe that IBM has been wrestling with this for a week.
> Part of the reason we are thinking of going with IBM is for the support.

Shared libs are obviously not their strong side :-)
Basically we are very happy with their RS6000's and AIX though.

> Here is my Makefile now.  I'm not sure about that -lc there 
> as I get duplicate symbol warnings but it appears to work fine.

they don't matter

> CFLAGS =    -g -O0 -pipe -ansi -Wall -Wshadow -Wpointer-arith 

gcc and not xlc :-) actually xlc produces faster code, but I don't think that makes a 
noticeable difference.

> .o.so:
>     ld -G -o $@ $< -L ${PGLIBDIR} -bI:/usr/local/pgsql/lib/postgres.imp \
>         -bexpall -bnoentry -lc

Always use the compiler for linking instead of ld:   gcc -Wl,-H512 -Wl,-bM:SRE -o $@ $< -L ${PGLIBDIR}
-bI:/usr/local/pgsql/lib/postgres.imp\-bexpall -bnoentry
 

You are not allowed to leave anything unresolved, thus do not use -G, or you won't notice
unresolved externals (-G includes -berok which you don't want at all).

Andreas


Re: AW: AW: User functions and AIX

От
darcy@druid.net (D'Arcy J.M. Cain)
Дата:
Thus spake Zeugswetter Andreas SB
> > Bingo!  I can't believe that IBM has been wrestling with this for a week.
> > Part of the reason we are thinking of going with IBM is for the support.
> 
> Shared libs are obviously not their strong side :-)
Tell me about it.

> Basically we are very happy with their RS6000's and AIX though.

With PostgreSQL?  See below.

> > Here is my Makefile now.  I'm not sure about that -lc there 
> > as I get duplicate symbol warnings but it appears to work fine.
> 
> they don't matter
> 
> > CFLAGS =    -g -O0 -pipe -ansi -Wall -Wshadow -Wpointer-arith 
> 
> gcc and not xlc :-) actually xlc produces faster code, but I don't think that makes a 
> noticeable difference.

Hmm.  Should I get rid of gcc and build PostgreSQL with xlc do you think?
Some people have told me that gcc is actually faster.

> > .o.so:
> >     ld -G -o $@ $< -L ${PGLIBDIR} -bI:/usr/local/pgsql/lib/postgres.imp \
> >         -bexpall -bnoentry -lc
> 
> Always use the compiler for linking instead of ld:
>     gcc -Wl,-H512 -Wl,-bM:SRE -o $@ $< -L ${PGLIBDIR} -bI:/usr/local/pgsql/lib/postgres.imp \
>     -bexpall -bnoentry

I'll do that.  Thanks.

> You are not allowed to leave anything unresolved, thus do not use -G, or you won't notice
> unresolved externals (-G includes -berok which you don't want at all).

I wasn't sure if I needed that.  I will remove it.


OK, so I built it and loaded my database.  I tried to load a very big
table (383969 rows) and the copy failed because it was too big.  I split
the input into smaller chunks but when I ran it I got the following error.

ERROR:  copy: line 1, Memory exhausted in AllocSetAlloc(858864139)

There is no way that I could have used that much memory in the first row.
I dropped the table and recreated it and the load worked.  Although it
works now I still feel a little uneasy.

Thanks for your help.

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.