Re: cygwin build failure - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: cygwin build failure |
Date | |
Msg-id | 200411072013.iA7KDWK10243@candle.pha.pa.us Whole thread Raw |
In response to | Re: cygwin build failure (Andrew Dunstan <andrew@dunslane.net>) |
Responses |
Re: cygwin build failure
|
List | pgsql-hackers |
Andrew Dunstan wrote: > > > Reini Urban wrote: > > >> > >> ... > >> >Info: resolving _optarg by linking to __imp__optarg (auto-import) > >> >Info: resolving _optind by linking to __imp__optind (auto-import) > > > > > > ok, i'm sure now. > > there's no way to ignore those diagnostics on the ld side. > > > It's a minor annoyance at worst. Not worth spending effort on. The > issue in these lines is the important one: > > ccache gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -fno-strict-aliasing -g pg_dump.o common.o pg_dump_sort.opg_backup_archiver.o pg_backup_db.o pg_backup_custom.o pg_backup_files.o pg_backup_null.o pg_backup_tar.o dumputils.o ../../../src/backend/parser/keywords.o -L../../../src/interfaces/libpq -lpq -L../../../src/port -L/usr/local/lib -lpgport -lz -lreadline -lcrypt -o pg_dump.exe > ../../../src/port/libpgport.a(pgstrcasecmp.o)(.text+0x1b0): In function `pg_tolower': > /home/adunstan/pgbf/root/HEAD/pgsql.4040/src/port/pgstrcasecmp.c:119: multiple definition of `_pg_tolower' > ../../../src/interfaces/libpq/libpq.a(dqgds00145.o)(.text+0x0): first defined here > Agreed. What could be the solution? I know it is caused by calling pg_strcasecmp in exec.c. I think I see it now. I added this to pg_dump/Makefile:# Not sure why MinGW needs this but it prevents a link failure# ofduplicate definitions for pg_tolower(). 2004-10-06ifeq ($(PORTNAME), win32)EXTRA_OBJS += $(top_builddir)/src/port/exec.oendif Now, the big question is if you remove this from the Makefile, does Cygwin compile OK, and if not, why does that fail? I am thinking we need to run ranlib on Cygwin to fix this properly. My BSD ranlib manual page has: --------------------------------------------------------------------------- ranlib [-v|-V] archive DESCRIPTION ranlib generates an index to the contents of an archive, and stores it in the archive. The indexlists each symbol defined by a member of an archive that is a relocatable object file. An archive with such an index speeds up linking to the li- brary, and allows routines in the library to calleach other without regard to their placement in the archive. The GNU ranlib program is another form of GNU ar; running ranlib is completely equivalent to executing `ar -s'. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
pgsql-hackers by date: