Opened 13 years ago

Closed 13 years ago

#1218 closed defect (fixed)

make fails rev7897 / wheezy

Reported by: darkblueb Owned by: strk
Priority: medium Milestone: PostGIS 2.0.0
Component: build Version: master
Keywords: Cc:

Description

Debian unstable/wheezy (gdal trunk builds fine) Linux wheezyvm 3.0.0-1-486 #1 Sat Aug 27 15:56:48 UTC 2011 i686 GNU/Linux


PostGIS is now configured for i686-pc-linux-gnu

——————— Compiler Info ——————-

C compiler: gcc -g -O2 C++ compiler: g++ -g -O2

——————— Dependencies ———————

GEOS config: /usr/local/bin/geos-config GEOS version: 3.4.0dev GDAL config: /usr/local/bin/gdal-config GDAL version: 1.9.0 PostgreSQL config: /usr/bin/pg_config PostgreSQL version: PostgreSQL 9.1.0 PROJ4 version: 47 Libxml2 config: /usr/bin/xml2-config Libxml2 version: 2.7.8 PostGIS debug level: 0

——————— Extensions ———————

PostGIS Raster: 0.1.6d PostGIS Topology: 0.1.1

———— Documentation Generation ————

xsltproc: /usr/bin/xsltproc xsl style sheets: dblatex: convert: /usr/bin/convert

dbb@wheezyvm:/home/shared/srcs_wheezy/postgis_trunk$ make clean && make make -C doc clean make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/doc' make -C html/image_src clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/doc/html/image_src' make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/doc/html/image_src' make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/doc' rm -f postgis.sql postgis_upgrade.sql for s in liblwgeom libpgcommon regress postgis loader utils raster topology; do \

echo "—— Making clean in ${s}"; \

make -C ${s} clean
exit 1; \

done;


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom' make -C cunit clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom/cunit' make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom/cunit' rm -f stringbuffer.lo measures.lo measures3d.lo box2d.lo ptarray.lo lwgeom_api.lo lwgeom.lo lwpoint.lo lwline.lo lwpoly.lo lwtriangle.lo lwmpoint.lo lwmline.lo lwmpoly.lo lwcollection.lo lwcircstring.lo lwcompound.lo lwcurvepoly.lo lwmcurve.lo lwmsurface.lo lwpsurface.lo lwtin.lo lwout_wkb.lo lwin_wkb.lo lwout_wkt.lo lwin_wkt_parse.lo lwin_wkt_lex.lo lwin_wkt.lo lwutil.lo lwhomogenize.lo lwalgorithm.lo lwsegmentize.lo lwprint.lo vsprintf.lo g_box.lo g_serialized.lo g_util.lo lwgeodetic.lo lwtree.lo libtgeom.lo lwout_gml.lo lwout_kml.lo lwout_geojson.lo lwout_svg.lo lwout_x3d.lo lwgeom_geos.lo lwgeom_geos_clean.lo lwgeom_geos_split.lo lwgeom_transform.lo lwspheroid.lo rm -f liblwgeom.la rm -rf .libs make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/libpgcommon' make -C cunit clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/libpgcommon/cunit' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/libpgcommon/cunit' rm -f gserialized_gist.o lwgeom_transform.o lwgeom_pg.o rm -f rm -f libpgcommon.a make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/libpgcommon'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/regress' rm -rf /home/shared/srcs_wheezy/postgis_trunk/regress/00-regress-install rm -f postgis.sql make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/regress'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/postgis' rm -f postgis-2.0.so libpostgis-2.0.a rm -f postgis.sql uninstall_postgis.sql postgis_upgrade_20_minor.sql legacy.sql uninstall_legacy.sql legacy_compatibility_layer.sql rm -f lwgeom_debug.o lwgeom_accum.o lwgeom_spheroid.o lwgeom_ogc.o lwgeom_functions_analytic.o lwgeom_inout.o lwgeom_estimate.o lwgeom_functions_basic.o lwgeom_gist.o lwgeom_btree.o lwgeom_box.o lwgeom_box3d.o lwgeom_box2dfloat4.o lwgeom_geos.o lwgeom_geos_prepared.o lwgeom_geos_clean.o lwgeom_geos_relatematch.o lwgeom_export.o lwgeom_in_gml.o lwgeom_in_kml.o lwgeom_triggers.o lwgeom_dump.o lwgeom_functions_lrs.o long_xact.o lwgeom_sqlmm.o lwgeom_rtree.o lwgeom_transform.o geography_inout.o gserialized_typmod.o gserialized_gist_2d.o gserialized_gist_nd.o geography_btree.o geography_estimate.o geography_measurement.o geometry_gist_selectivity.o rm -f postgis.sql.in uninstall_postgis.sql.in legacy.sql.in uninstall_legacy.sql.in legacy_compatibility_layer.sql.in make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/postgis'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/loader' make -C cunit clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/loader/cunit' make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/loader/cunit' make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/loader'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/utils' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/utils'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster' make -C rt_core clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster/rt_core' rm -f rt_api.o rm -f librtcore.a make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster/rt_core' make -C rt_pg clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster/rt_pg' rm -f rtpostgis-2.0.so librtpostgis-2.0.a rm -f rtpostgis.sql rm -f rt_pg.o rm -f rtpostgis.sql.in rtpostgis.sql make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster/rt_pg' make -C test clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster/test' make -C core clean make[3]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster/test/core' rm -f testapi testwkb make[3]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster/test/core' make -C regress clean make[3]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster/test/regress' rm -f -f rtpostgis.sql make[3]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster/test/regress' make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster/test' make -C scripts/python clean make[2]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/raster/scripts/python' rm -f *.o make[2]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster/scripts/python' make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/raster'


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/topology' rm -f topology.sql rm -f topology.sql.in make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/topology' for s in liblwgeom libpgcommon regress postgis loader utils raster topology; do \

echo "—— Making all in ${s}"; \

make -C ${s} all
exit 1; \

done;


make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom' /bin/sh ../libtool —mode=compile gcc -g -O2 -fPIC -DPIC -Wall -Wmissing-prototypes -I/usr/local/include -DPOSTGIS_GEOS_VERSION=34 -DPOSTGIS_PROJ_VERSION=47 -c -o stringbuffer.lo stringbuffer.c ../libtool: 1: eval: base_compile+= gcc: not found ../libtool: 1: eval: base_compile+= -g: not found ../libtool: 1: eval: base_compile+= -O2: not found ../libtool: 1: eval: base_compile+= -fPIC: not found ../libtool: 1: eval: base_compile+= -DPIC: not found ../libtool: 1: eval: base_compile+= -Wall: not found ../libtool: 1: eval: base_compile+= -Wmissing-prototypes: not found ../libtool: 1: eval: base_compile+= -I/usr/local/include: not found ../libtool: 1: eval: base_compile+= -DPOSTGIS_GEOS_VERSION=34: not found ../libtool: 1: eval: base_compile+= -DPOSTGIS_PROJ_VERSION=47: not found ../libtool: 1: eval: base_compile+= -c: not found ../libtool: 1: eval: CC_quoted+= gcc: not found ../libtool: 1: eval: CC_quoted+= g++: not found libtool: compile: you must specify a compilation command libtool: compile: Try `libtool —help —mode=compile' for more information. make[1]: * [stringbuffer.lo] Error 1 make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom' make: * [all] Error 1 dbb@wheezyvm:/home/shared/srcs_wheezy/postgis_trunk$ svn up U doc/reference_raster.xml Updated to revision 7897.

Change History (11)

comment:1 by dustymugs, 13 years ago

Can you attach a log catching the make output? It's difficult deciphering the ticket description. Something like…

make > make.log 2>&1

should do the trick.

comment:2 by darkblueb, 13 years ago

here is the output of make > make.log 2>&1 —-

for s in liblwgeom libpgcommon regress postgis loader utils raster topology; do \
		echo "---- Making all in ${s}"; \
		make -C ${s} all || exit 1; \
	done;
---- Making all in liblwgeom
make[1]: Entering directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom'
/bin/sh ../libtool --mode=compile gcc -g -O2  -fPIC -DPIC  -Wall -Wmissing-prototypes -I/usr/local/include -DPOSTGIS_GEOS_VERSION=34 -DPOSTGIS_PROJ_VERSION=47 -c -o stringbuffer.lo stringbuffer.c
../libtool: 1: eval: base_compile+= gcc: not found
../libtool: 1: eval: base_compile+= -g: not found
../libtool: 1: eval: base_compile+= -O2: not found
../libtool: 1: eval: base_compile+= -fPIC: not found
../libtool: 1: eval: base_compile+= -DPIC: not found
../libtool: 1: eval: base_compile+= -Wall: not found
../libtool: 1: eval: base_compile+= -Wmissing-prototypes: not found
../libtool: 1: eval: base_compile+= -I/usr/local/include: not found
../libtool: 1: eval: base_compile+= -DPOSTGIS_GEOS_VERSION=34: not found
../libtool: 1: eval: base_compile+= -DPOSTGIS_PROJ_VERSION=47: not found
../libtool: 1: eval: base_compile+= -c: not found
../libtool: 1: eval: CC_quoted+= gcc: not found
../libtool: 1: eval: CC_quoted+= g++: not found
libtool: compile: you must specify a compilation command
libtool: compile: Try `libtool --help --mode=compile' for more information.
make[1]: *** [stringbuffer.lo] Error 1
make[1]: Leaving directory `/home/shared/srcs_wheezy/postgis_trunk/liblwgeom'
make: *** [all] Error 1

comment:3 by strk, 13 years ago

Owner: changed from pramsey to strk
Status: newassigned

We've discussed this on the list already, if I'm not wrong. The problem was with a system setup error in that the top-level "libtool" script we ship (it's in the repository) doesn't have the base_compile variable used, so it is _your_ system re-generating it at ./autogen.sh time, and it is regenerating a bogus version, which works with bash but not with the /bin/sh you have on your system.

exporting SHELL=/bin/bash should fix the case for you, but you'd better either use the version of libtool you find in the repository/package (ie: don't run autogen.sh or revert the change of libtool) or fix the libtoolize you have in your system (report bug upstream).

comment:4 by darkblueb, 13 years ago

a workaround is

./configure SHELL=/bin/bash && make

comment:5 by strk, 13 years ago

I've realized there's no libtool script in the repository, but is created by ./configure trough the AC_PROG_LIBTOOL macro call deined by macros/libtool.m4. The same macro expands the @LIBTOOL@ variable to $(SHELL) $(top_srcdir)/libtool.

Supposedly, the macro is checking if the shell supports the += construct, and correctly finding it's _not_ in the darkblueb case (we checked on IRC). Despite this recognition, the SHELL variable is still set to /bin/sh if no CONFIG_SHELL is set by the user.

So, workaround would be appending CONFIG_SHELL=/bin/bash or SHELL=/bin/bash to the ./configure call. A better fix would be making sure the libtool script only uses POSIX compliant constructs…

comment:6 by darkblueb, 13 years ago

a new checkout, a new build, a new failure…

in debian there appears to be a concept of a system shell, aside from the user shell. Resetting the system shell back to sh from dash is also a workaround.

   dpkg-reconfigure dash

comment:7 by strk, 13 years ago

System shell is /bin/sh by definition, usually a symlink to one or another actual shell. Is this symlink you're changing ?

Is your personal shell "dash" now and before ? What was /bin/sh linked to now and before ?

comment:8 by darkblueb, 13 years ago

when I installed the system, my user shell appeared to be bash, though I have no proof of that. I definitely changed to bash immiediately when I had this trouble on the first build. Changing the user shall to bash explicitly had no effect, which supports the fact that it was bash to start.

in /bin sh is a symlink to bash right now. there is another link called sh.distrib → dash, and another rbash → bash

comment:9 by strk, 13 years ago

Everytime you change something you should call 'make distclean' and run ./configure again, otherwise you may hit some caches.

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=621743 for the same bug reported on debian wheezy (for another package being built) In that bug is reported that setting SHELL in Makefile.in fixed another such case. I've committed this as r7921 and with r7922 I've fixed "make distclean" further.

Please try with the updated version, if it still fails after a "make distclean" and a "./configure" please report:

# env | grep SHELL # grep -A1 understands config.log # grep SHELL liblwgeom/Makefile # grep LIBTOOL liblwgeom/Makefile

If it works, consider gettin back to "dash" shell and trying again, reportin the same informations when it fails.

comment:10 by robe, 13 years ago

Component: postgisbuild/upgrade/install

comment:11 by strk, 13 years ago

Resolution: fixed
Status: assignedclosed

Assuming fixed after 3 months of inactivity. @darkblue: feel free to reopen if not.

Note: See TracTickets for help on using tickets.