test failure when building gnutls-2.12.14 for ARM
David A. Marlin
dmarlin at redhat.com
Fri Feb 3 14:56:11 CET 2012
When building gnutls-2.12.14 on Fedora rawhide for ARM.
Using versions:
gcc-4.7.0
glibc-2.15
guile-1.8.8
three tests fail during 'make check':
-------------------------------------
Making check in tests
make[2]: Entering directory
`/builddir/build/BUILD/gnutls-2.12.14/guile/tests'
make check-TESTS
make[3]: Entering directory
`/builddir/build/BUILD/gnutls-2.12.14/guile/tests'
PASS: anonymous-auth.scm
/bin/sh: line 5: 11417 Segmentation fault GUILE_AUTO_COMPILE=0
../../guile/pre-inst-guile -L . ${dir}$tst
FAIL: session-record-port.scm
PASS: pkcs-import-export.scm
PASS: errors.scm
PASS: x509-certificates.scm
/bin/sh: line 5: 11463 Segmentation fault GUILE_AUTO_COMPILE=0
../../guile/pre-inst-guile -L . ${dir}$tst
FAIL: x509-auth.scm
PASS: openpgp-keys.scm
PASS: openpgp-keyring.scm
/bin/sh: line 5: 11499 Segmentation fault GUILE_AUTO_COMPILE=0
../../guile/pre-inst-guile -L . ${dir}$tst
FAIL: openpgp-auth.scm
===================================
3 of 9 tests failed
Please report to bug-gnutls at gnu.org
===================================
-------------------------------------
This appears to be caused by a difference in the size of off_t in the
following structure:
/usr/include/libguile/ports.h
-------------------------------------
typedef struct
{
SCM port;
long int entry;
int revealed;
scm_t_bits stream;
SCM file_name;
long int line_number;
int column_number;
unsigned char *read_buf;
const unsigned char *read_pos;
unsigned char *read_end;
off_t read_buf_size;
unsigned char *saved_read_buf;
const unsigned char *saved_read_pos;
unsigned char *saved_read_end;
off_t saved_read_buf_size;
unsigned char *write_buf;
unsigned char *write_pos;
unsigned char *write_end;
off_t write_buf_size;
unsigned char shortbuf;
int rw_random;
scm_t_port_rw_active rw_active;
unsigned char *putback_buf;
size_t putback_buf_size;
} scm_t_port;
-------------------------------------
In gnutls off_t is 'long long int', but in guile off_t is 'long int'.
This is because gnutls has:
#define _FILE_OFFSET_BITS 64
and guile has no such definition.
By building guile with -D_FILE_OFFSET_BITS=64, the gnutls test completed
successfully. Conversely, using the original guile build and rebuilding
gnutls with '--disable-largefile' in the configure command also allows
the gnutls test completed successfully.
Please let me know the correct solution to this issue, of if you need
any additional information.
Thank you,
d.marlin
More information about the Gnutls-devel
mailing list