Open fmitha opened 9 years ago
His failure from the build log happened while building the dylan tests as part of make check
after a full 3 stage bootstrap:
Building dylan-test-suite... fdmake: build product /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/lib/libdylan-test-suite.so missing
fdmake: compile failed (65280), see /usr/local/src/opendylan/opendylan-2014.1/Bootstrap.3/build/logs/compile-dylan-test-suite.txt
...
Makefile:464: recipe for target 'check' failed
make[1]: *** [check] Error 1
make[1]: Leaving directory '/usr/local/src/opendylan/opendylan-2014.1'
dh_auto_test: make -j1 check returned exit code 2
debian/rules:23: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
I'm not sure what is running make check
.
This actual error here is this:
Cc constants.o : constants.c
constants.c:550:22
: error: integer constant is larger than the largest unsigned integer type
T0 = (dylan_value) 0xFFFFFFFFFFFFFFFF8000000000000001L;
^
constants.c:551
:31: error: integer constant is larger than the largest unsigned integer type
MV_SET_ELT(0, (dylan_value) 0xFFFFFFFFFFFFFFFF8000000000000001L);
^
So it is the sign extension bug ... at least one form of it.
@housel commented on IRC earlier:
faheem__: That looks like a bug in the C back-end output code; for
$minimum-integer
it's outputting0xFFFFFFFFFFFFFFFF8000000000000001L
(sign-extending too far)
For the record, dh
calls make check
as part of the dh_auto_test
target in rules
, which is invoked by default. One can disable it either by passing a nocheck
option via the command line, or by creating an override_dh_auto_test
target and putting nothing under it.
I created some very preliminary and basic Debian packaging for Open Dylan. This packaging can be found at https://bitbucket.org/faheem/opendylan-debian.
Unfortunately, the build using this Debian packaging crashed with what looks like a compiler error. See opendylan_2014.1-1_amd64.build. I was testing this on Debian jessie amd64.
Debian expects an upstream "orig" tarball to work with. I'm using the
opendylan-2014.1-sources.tar.bz2
tarball here.You should be able to reproduce the build by copying this repository as a subdirectory called "debian" of the top level source Open Dylan directory, and then typing "debuild -uc -us".
NOTE; The Debian packaging uses the same build commands that the Open Dylan project documents in the README, namely
./configure
,make
, andmake install
.However, when I ran these commands by hand, I was able to successfully build the sources. (I don't think I ran
make install
, though.)The only difference between a Debian build and a build by hand (that I am aware of) is that Debian adds some hardening compile-time flags. These are normally harmless. See https://wiki.debian.org/Hardening. I did not add anything myself; these were added automatically.