file 4.22 build fails on Solaris 9 due to strtof()
Christos Zoulas
christos at zoulas.com
Thu Dec 27 22:52:03 EET 2007
On Dec 27, 1:27pm, Zube at CS.ColoState.EDU (Zube) wrote:
-- Subject: file 4.22 build fails on Solaris 9 due to strtof()
| On Solaris 9 sparc fully patched, building with gcc 3.4.6:
|
| gmake[2]: Entering directory `/stat/src/file/file-4.22/src'
| /bin/bash ../libtool --tag=CC --mode=link gcc -O2 -o file file.o libmagic.la -lz
| gcc -O2 -o .libs/file file.o ./.libs/libmagic.so -lz -R/usr/local/lib
| Undefined first referenced
| symbol in file
| strtof ./.libs/libmagic.so
| ld: fatal: Symbol referencing errors. No output written to .libs/file
| collect2: ld returned 1 exit status
|
| strtof() seems to have crept into apprentice.c (it wasn't in file 4.21),
| but I don't think Solaris 9 has it.
Here's a patch:
Index: config.h.in
===================================================================
RCS file: /p/file/cvsroot/file/config.h.in,v
retrieving revision 1.27
diff -u -u -r1.27 config.h.in
--- config.h.in 2 Dec 2007 00:28:10 -0000 1.27
+++ config.h.in 27 Dec 2007 20:50:57 -0000
@@ -72,6 +72,9 @@
/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP
+/* Define to 1 if you have the `strtof' function. */
+#undef HAVE_STRTOF
+
/* Define to 1 if you have the `strtoul' function. */
#undef HAVE_STRTOUL
Index: configure
===================================================================
RCS file: /p/file/cvsroot/file/configure,v
retrieving revision 1.71
diff -u -u -r1.71 configure
--- configure 27 Dec 2007 16:41:00 -0000 1.71
+++ configure 27 Dec 2007 20:50:57 -0000
@@ -23398,7 +23398,8 @@
-for ac_func in mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf
+
+for ac_func in mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf strtof
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
Index: configure.in
===================================================================
RCS file: /p/file/cvsroot/file/configure.in,v
retrieving revision 1.67
diff -u -u -r1.67 configure.in
--- configure.in 27 Dec 2007 16:41:00 -0000 1.67
+++ configure.in 27 Dec 2007 20:50:57 -0000
@@ -127,7 +127,7 @@
AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0)
dnl Checks for functions
-AC_CHECK_FUNCS(mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf)
+AC_CHECK_FUNCS(mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf strtof)
dnl Checks for libraries
AC_CHECK_LIB(z,gzopen)
Index: src/apprentice.c
===================================================================
RCS file: /p/file/cvsroot/file/src/apprentice.c,v
retrieving revision 1.108
diff -u -u -r1.108 apprentice.c
--- src/apprentice.c 27 Dec 2007 16:35:58 -0000 1.108
+++ src/apprentice.c 27 Dec 2007 20:50:58 -0000
@@ -1418,7 +1419,11 @@
case FILE_LEFLOAT:
if (m->reln != 'x') {
char *ep;
+#ifdef HAVE_STRTOF
m->value.f = strtof(*p, &ep);
+#else
+ m->value.f = (float)strtod(*p, &ep);
+#endif
*p = ep;
}
return 0;
More information about the File
mailing list