Re: Csound build failure in hppa
On Sun, Nov 15, 2009 at 11:03 PM, Felipe Sateler <fsateler@gmail.com> wrote:
> I think the analysis it is wrong, because after the scons clean stage, the
> cache is deleted. Relevant section from debian/cdbs/1/class/scons.mk:
>
> scons-clean::
> $(DEB_SCONS_INVOKE) $(DEB_SCONS_CLEAN_TARGET) $(DEB_SCONS_OPTIONS)
> --keep-going --clean || true
> rm -f debian/stamp-scons-build
> rm -rf .sconf_temp/
> rm -f .sconsign.dblite config.log
>
> The cache are .scon*.
> As can be seen in the build log, when scons uses a cached value (like in the
> install stage), it prints: Checking for foo... (cached) no.
> However, in the buildd log the build stage shows no (cached) responses.
Thanks, I hadn't realized that this code was deleting the scons cache.
With this knowlege I went back, and verified a couple of things:
1) Verified that the custom.py (using md5sum) is installed before scons is run.
2) Verified using strace that scons opens custom.py.
3) Verified using a compiler wrapper that the invocation by
configure.CheckHeader() contains the correct include path.
The following is the compiler invocation that configure.CheckHeader()
uses when looking for jni.h.
hppa-linux-gnu-g++ -o .sconf_temp/conftest_26.o -c -fexceptions
-Wno-format -DGNU_GETTEXT -g -fomit-frame-pointer -freorder-blocks
-DLINUX -DPIPES -DUSE_DOUBLE -DHAVE_SOCKETS
-DHAVE_PTHREAD_BARRIER_INIT -DHAVE_SYNC_LOCK_TEST_AND_SET -I. -IH
-I/usr/include/lua5.1 -I/usr/include/tcl -I/usr/include/tcl8.4
-I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/java-gcj/include
-I/usr/local/include -I/usr/include -I/usr/include
-I/usr/X11R6/include .sconf_temp/conftest_26.cpp
When I compile this I get:
In file included from .sconf_temp/conftest_26.cpp:2:
/usr/lib/jvm/default-java/include/jni.h:52:20: error: jni_md.h: No
such file or directory
This is why the build fails to detect jni.h, not because the jni.h
file isn't there but because additional header files are missing.
Adding: customCPPPATH.append('/usr/lib/jvm/default-java/include/linux')
to debian/custom.py causes the build to complete successfully. This is
a possible workaround.
My previous comment that adding --config=force caused the build to
succeed was wrong, as I had been playing with custom.py, and had not
realized that I had added the above path during my experimentation and
that *this* was the cause of the successful build.
On hppa that symlink is missing and this causes your build problem.
The symlink should be provided by java-gcj-compat source when building
all of the java-gcj-compat* packages.
This appears to be a bug in the java-gcj-compat package (CC'ing debian-gcc).
The java-gcj-compat package has disabled code for architectures that
only use gcj4.4, and this includes hppa.
Enabling the disabled code in java-gcj-compat causes
java-gcj-compat-headless to conflict with gcj-jre-headless (which
provides the same directory /usr/lib/jvm/java-gcj).
So my question is this: Is java-gcj-compat required for gcj4.4? Does
gcj-jre-headless need to provide the appropriate symlinks that
java-gcj-compat used to provide?
Cheers,
Carlos.
Reply to: