From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Julia Jacobson <julia(dot)jacobson(at)arcor(dot)de> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #5960: No rule to make target 'libpq.a', needed by 'all-static-lib' |
Date: | 2011-04-05 16:10:05 |
Message-ID: | BANLkTikmURWoQj1nqb9nR3pgoyGtmvjn9Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Wed, Mar 30, 2011 at 9:54 AM, Julia Jacobson <julia(dot)jacobson(at)arcor(dot)de> wrote:
> When trying to compile PostgreSQL 8.4.6 on Windows 7 using MSys (MinGW) in
> order to build a static version of libpq by the commands
> ./configure --without-zlib --disable-shared
> make
> the compilation process ends with the error message
> "No rule to make target 'libpq.a', needed by 'all-static-lib'".
> This issue was already discussed here on the mailing list more than 6 years
> ago and successfully fixed with a patch:
> http://archives.postgresql.org/pgsql-hackers-win32/2004-10/msg00057.php
> However, it seems to me like there is a similar problem in version 8.4.x.
> Please corrected me if I'm wrong.
I tried this on MacOS X and got a different error:
make -C interfaces all
make -C libpq all
make[3]: *** No rule to make target `libpq.5.4.dylib', needed by
`all-shared-lib'. Stop.
make[2]: *** [all-libpq-recurse] Error 2
make[1]: *** [all-interfaces-recurse] Error 2
make: *** [all-src-recurse] Error 2
I also tried it on Linux (Fedora 12), where it completed successfully.
Unfortunately, I don't think we have any buildfarm coverage of
--disable-shared, so there is no automatic way for us to notice when
this has gotten broken.
The problem appears to be that the all-shared-lib target in
src/Makefile.shlib depends on $(shlib). The first two, generic
assignments to that variable are protected like this:
ifeq ($(enable_shared), yes)
shlib = $(NAME)$(DLSUFFIX)
endif
But the remaining, platform-specific ones are not. So my guess is
this will work on any platform that uses the default value for shlib,
and fail on any platform that has a platform-specific override,
namely: aix, darwin, freebsd, hpux, irix, cygwin, win32.
Can you see whether the following patch fixes it for you? It seems to
work on MacOS X, but I don't have a mingw environment handy.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment | Content-Type | Size |
---|---|---|
disable-shared.patch | application/octet-stream | 374 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Grittner | 2011-04-05 16:13:35 | Re: BUG #5952: SetRWConflict assertion failure |
Previous Message | Kevin Grittner | 2011-04-05 16:07:28 | Re: BUG #5952: SetRWConflict assertion failure |