Обсуждение: build annoyences

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

build annoyences

От
Michiel Ephraim
Дата:
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


Вложения

Re: build annoyences

От
Bruce Momjian
Дата:
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

Re: build annoyences

От
Michiel Ephraim
Дата:
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