Thread: mingw compile error
Hi, I noticed that if I build postgresql-8.3.1 on mingw with --disable-shared --without-zlib, I get a compiler error when it goes to build the regress test in src/test/regress. The problem is here, $(NAME)$(DLSUFFIX): $(shlib) rm -f $(NAME)$(DLSUFFIX) $(LN_S) $(shlib) $(NAME)$(DLSUFFIX) It uses the variable $(shlib) which is only defined if the build is configured with a shared library. Therefor, the ln -s command comes out like 'ln -s regress.dll', and the build fails. Bob Rossi
Bob Rossi <bob_rossi@cox.net> writes: > I noticed that if I build postgresql-8.3.1 on mingw with > --disable-shared --without-zlib, I get a compiler error when it goes to > build the regress test in src/test/regress. That's the least of your problems --- the regression tests wouldn't work anyway, since they depend on four or five different shared libraries such as plpgsql. I'm not sure why we still pretend to support --disable-shared at all... regards, tom lane
On Thu, May 15, 2008 at 12:37:42PM -0400, Tom Lane wrote: > Bob Rossi <bob_rossi@cox.net> writes: > > I noticed that if I build postgresql-8.3.1 on mingw with > > --disable-shared --without-zlib, I get a compiler error when it goes to > > build the regress test in src/test/regress. > > That's the least of your problems --- the regression tests wouldn't work > anyway, since they depend on four or five different shared libraries > such as plpgsql. > > I'm not sure why we still pretend to support --disable-shared at all... Umm, I don't know what you are talking about. After disabling the building of that directory, everything appeard to work just fine. Do you think I'll have runtime errors because of the --disable-shared option? Bob Rossi
On Thu, May 15, 2008 at 11:18:18AM -0400, Bob Rossi wrote: > Hi, > > I noticed that if I build postgresql-8.3.1 on mingw with > --disable-shared --without-zlib, I get a compiler error when it goes to > build the regress test in src/test/regress. > > The problem is here, > $(NAME)$(DLSUFFIX): $(shlib) > rm -f $(NAME)$(DLSUFFIX) > $(LN_S) $(shlib) $(NAME)$(DLSUFFIX) > It uses the variable $(shlib) which is only defined if the build is > configured with a shared library. Therefor, the ln -s command comes out > like 'ln -s regress.dll', and the build fails. Ping. Anyone care? Bob Rossi
Bob Rossi <bob_rossi@cox.net> writes: >> I noticed that if I build postgresql-8.3.1 on mingw with >> --disable-shared --without-zlib, I get a compiler error when it goes to >> build the regress test in src/test/regress. > Ping. Anyone care? Well, no, not a lot --- you haven't explained why it's necessary for you to build with --disable-shared. Mingw certainly supports shared libraries, and it's hard to deny that that's the wave of the future, and as I already mentioned to you there are large areas of Postgres functionality that never have and never will work without shared library support. For the record, so far as I can tell the src/test/regress makefile has never supported --disable-shared build. If it worked for you before, it was because the upper-level makefiles didn't propagate the "make all" request down to src/test/regress. But that started to happen in 8.2, and yours is the first complaint we've gotten, so it doesn't seem to be of wide interest. FWIW, I notice that CVS HEAD doesn't try to build the shlib in src/test/regress, as a result of unrelated cleanups by Peter E. It does still try to build the two contrib/spi .so files that the regression tests want ... I have no idea if that would fail on your tool chain or not. regards, tom lane