From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | Reini Urban <rurban(at)x-ray(dot)at>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: cygwin build failure |
Date: | 2004-11-07 20:13:32 |
Message-ID: | 200411072013.iA7KDWK10243@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
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.o pg_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
# of duplicate definitions for pg_tolower(). 2004-10-06
ifeq ($(PORTNAME), win32)
EXTRA_OBJS += $(top_builddir)/src/port/exec.o
endif
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 index lists 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 call each
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(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2004-11-07 20:15:12 | Re: pg_arch.c call to sleep() |
Previous Message | Andrew Dunstan | 2004-11-07 20:01:14 | Re: pg_arch.c call to sleep() |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2004-11-07 20:20:26 | pg_resetxlog options |
Previous Message | Alin Vaida | 2004-11-07 19:38:29 | Romanian translation for 8.0: new file (psql) |