build annoyences

Started by Michiel Ephraimover 22 years ago4 messagespatches
Jump to latest
#1Michiel Ephraim
ephraim@euph1.xs4all.nl

dear hackers-win32 list,

When building today's CVS version for win32, i found a few little things which
stopped a clean "gmake && gmake install". Most of them are missing .exe
extensions in the makefiles.

A diff is attached to this mail. Changes to "src/makefiles/Makefile.win32"
were only necessary for cross-compilation.

My setup is
compiler: mingw32-gcc (GCC) 3.3.1 (mingw special 20030804-1)
host: FreeBSD euph4 5.2-RELEASE
configure options used: --host=mingw32 --prefix=/opt/postgres-mingw32
--without-readline --without-zlib

The gcc is setup as a cross-compiler for mingw32, and is simply installed from
ports.

Hope this is useful for anyone,
Michiel

Attachments:

ME-DIFFstext/x-diff; charset=us-ascii; name=ME-DIFFsDownload+18-13
#2Bruce Momjian
bruce@momjian.us
In reply to: Michiel Ephraim (#1)
Re: build annoyences

Michiel Ephraim wrote:

dear hackers-win32 list,

When building today's CVS version for win32, i found a few little things which
stopped a clean "gmake && gmake install". Most of them are missing .exe
extensions in the makefiles.

A diff is attached to this mail. Changes to "src/makefiles/Makefile.win32"
were only necessary for cross-compilation.

My setup is
compiler: mingw32-gcc (GCC) 3.3.1 (mingw special 20030804-1)
host: FreeBSD euph4 5.2-RELEASE
configure options used: --host=mingw32 --prefix=/opt/postgres-mingw32
--without-readline --without-zlib

The gcc is setup as a cross-compiler for mingw32, and is simply installed from
ports.

Interesting. I am confused why others didn't need these changes. In
psql's Makefile I see:

psql: $(OBJS) $(libpq_builddir)/libpq.a
$(CC) $(CFLAGS) $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@
...

install: all installdirs
$(INSTALL_PROGRAM) psql$(X) $(DESTDIR)$(bindir)/psql$(X)

Why do other compilers output .exe from CC? Is it because you are
cross-compiling? Also, why did you need to change the #include in
snprintf?

-- 
  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, Pennsylvania 19073
#3Michiel Ephraim
ephraim@euph1.xs4all.nl
In reply to: Bruce Momjian (#2)
Re: build annoyences

On Tuesday 20 April 2004 00:32, Bruce Momjian wrote:

Michiel Ephraim wrote:

dear hackers-win32 list,

When building today's CVS version for win32, i found a few little things
which stopped a clean "gmake && gmake install". Most of them are missing
.exe extensions in the makefiles.

A diff is attached to this mail. Changes to
"src/makefiles/Makefile.win32" were only necessary for cross-compilation.

My setup is
compiler: mingw32-gcc (GCC) 3.3.1 (mingw special 20030804-1)
host: FreeBSD euph4 5.2-RELEASE
configure options used: --host=mingw32 --prefix=/opt/postgres-mingw32
--without-readline --without-zlib

The gcc is setup as a cross-compiler for mingw32, and is simply installed
from ports.

Interesting. I am confused why others didn't need these changes. In
psql's Makefile I see:

psql: $(OBJS) $(libpq_builddir)/libpq.a
$(CC) $(CFLAGS) $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@
...

install: all installdirs
$(INSTALL_PROGRAM) psql$(X) $(DESTDIR)$(bindir)/psql$(X)

Why do other compilers output .exe from CC? Is it because you are
cross-compiling? Also, why did you need to change the #include in
snprintf?

Hi Bruce,

Thanks for the response.

Most likely you are right about the cross-compiling. In that case the compiler
doesn't add the .exe by itself. Actually in one case, there was already a
$(X) in the link line. So, I guess, it doesn't hurt.

I removed the #include because it isn't available in my compiler setup. The
freebsd port is used here.

For your information, let me list the versions:

as reported with "--version":
mingw32-gcc (GCC) 3.3.1 (mingw special 20030804-1)
GNU ld version 2.15.90 20040222

as reported with "pkg_info | grep mingw32"
mingw32-bin-msvcrt-r3.2.a2.5 Headers and Libraries for Windows
cross-development
mingw32-binutils-2.15.90.20040222.1,1 FSF binutils-2.14 for Windows
cross-development
mingw32-gcc-3.3.1.20030804.1_3,1 FSF gcc-3.3 for Windows cross-development

I can try to install a newer cross-compiler by hand, instead of the port, and
try again.

Interesting, I am confused no one else uses a cross-compiler ;)

If you want me to do more tests, i can do those tomorrow morning,
Michiel

#4Bruce Momjian
bruce@momjian.us
In reply to: Michiel Ephraim (#3)
Re: build annoyences

Michiel Ephraim wrote:

On Tuesday 20 April 2004 00:32, Bruce Momjian wrote:

Michiel Ephraim wrote:

dear hackers-win32 list,

When building today's CVS version for win32, i found a few little things
which stopped a clean "gmake && gmake install". Most of them are missing
.exe extensions in the makefiles.

A diff is attached to this mail. Changes to
"src/makefiles/Makefile.win32" were only necessary for cross-compilation.

My setup is
compiler: mingw32-gcc (GCC) 3.3.1 (mingw special 20030804-1)
host: FreeBSD euph4 5.2-RELEASE
configure options used: --host=mingw32 --prefix=/opt/postgres-mingw32
--without-readline --without-zlib

The gcc is setup as a cross-compiler for mingw32, and is simply installed
from ports.

Interesting. I am confused why others didn't need these changes. In
psql's Makefile I see:

psql: $(OBJS) $(libpq_builddir)/libpq.a
$(CC) $(CFLAGS) $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@
...

install: all installdirs
$(INSTALL_PROGRAM) psql$(X) $(DESTDIR)$(bindir)/psql$(X)

Why do other compilers output .exe from CC? Is it because you are
cross-compiling? Also, why did you need to change the #include in
snprintf?

Hi Bruce,

Thanks for the response.

Most likely you are right about the cross-compiling. In that case the compiler
doesn't add the .exe by itself. Actually in one case, there was already a
$(X) in the link line. So, I guess, it doesn't hurt.

Yes, I see that backend/Makefile already had the $(X) for link lines so
it seems it is necessary. I applied the attached patch that adds $(X)
to the other links.

I don't think we have a lot of folks using a mingw compiler on Unix
systems, yet. :-)

Thanks.

-- 
  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, Pennsylvania 19073

Attachments:

/bjm/difftext/plainDownload+18-18