[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-tar] wordsplit on IRIX
From: |
Rainer M. Canavan |
Subject: |
[Bug-tar] wordsplit on IRIX |
Date: |
Sun, 22 Dec 2013 18:21:29 +0100 (CET) |
Hi,
I've stumbled accross 4 issues when building gnu tar 1.27 or 1.27.1 on IRIX that
haven't existed with 1.26. I'm using IRIX 6.5.30, the MIPSPro 7.4.4 compiler and
GNU Make 3.82.
One is that rmt (and probably tar itself) uses libintl_gettext even if no
libintl is detected.
This is easily worked around by specifying include and library paths so that a
libintl can
be found and used by configure:
configure (without parameters) said:
checking for GNU gettext in libintl... no
but the build fails at:
cc -c99 -g -o rmt rmt.o ../gnu/libgnu.a
[...]
ld32: ERROR 33 : Unresolved text symbol "libintl_gettext" -- 1st referenced
by ../gnu/libgnu.a(error.o).
Use linker option -v to see when and which objects, archives and dsos
are loaded.
ld32: ERROR 33 : Unresolved text symbol "libintl_dgettext" -- 1st referenced
by ../gnu/libgnu.a(argp-parse.o).
Use linker option -v to see when and which objects, archives and dsos
are loaded.
ld32: INFO 152: Output file removed because of error.
The next issue is that the generated .Po files are invalid. I'm not sure how
they're supposed to look, but the complaint is always:
.deps/areadlinkat.Po:2: *** missing separator. Stop.
All .Po files have 2 lines and look basically like:
acl-errno-valid.o : /usr/include/sys/timespec.h ../config.h
/usr/include/internal/sgimacros.h /usr/include/stddef.h
/usr/include/internal/string_core.h /usr/include/sys/bsd_types.h
/usr/include/sys/select.h /usr/include/sys/errno.h /usr/include/sys/stat.h
/usr/include/sys/pthread.h ./sys/time.h /usr/include/sys/types.h ./sys/stat.h
/usr/include/sys/ptimers.h /usr/include/errno.h /usr/include/standards.h
/usr/include/sgidefs.h ./time.h /usr/include/stdbool.h
/usr/include/internal/stddef_core.h /usr/include/string.h
/usr/include/internal/errno_core.h /usr/include/internal/time_core.h ./string.h
/usr/include/time.h ./acl.h /usr/include/sys/time.h ./errno.h ./sys/types.h
#:fec
/usr/include/sys/timespec.h ../config.h /usr/include/internal/sgimacros.h
/usr/include/stddef.h /usr/include/internal/string_core.h
/usr/include/sys/bsd_types.h /usr/include/sys/select.h /usr/include/sys/errno.h
/usr/include/sys/stat.h /usr/include/sys/pthread.h ./sys/time.h
/usr/include/sys/types.h ./sys/stat.h /usr/include/sys/ptimers.h
/usr/include/errno.h /usr/include/standards.h /usr/include/sgidefs.h ./time.h
/usr/include/stdbool.h /usr/include/internal/stddef_core.h
/usr/include/string.h /usr/include/internal/errno_core.h
/usr/include/internal/time_core.h ./string.h /usr/include/time.h ./acl.h
/usr/include/sys/time.h ./errno.h ./sys/types.h #:fec :
The last issue is that wordlist uses __attribute__, which as
far as I know, is a gcc extension. The at the end of this mail fixes this.
gmake[4]: Entering directory `/usr/people/canavan/src/tar/tar-1.27/lib'
CC wordsplit.o
cc-1065 c99: ERROR File = ./wordsplit.h, Line = 37
A semicolon is expected at this point.
__attribute__ ((__format__ (__printf__, 1, 2)));
^
cc-1065 c99: ERROR File = ./wordsplit.h, Line = 39
A semicolon is expected at this point.
__attribute__ ((__format__ (__printf__, 1, 2)));
^
cc-1079 c99: ERROR File = wordsplit.c, Line = 64
A type specifier is expected.
static void __attribute__ ((__format__ (__printf__, 1, 2)))
^
cc-1137 c99: ERROR File = wordsplit.c, Line = 64
Unnamed prototyped parameters not allowed when body is present.
static void __attribute__ ((__format__ (__printf__, 1, 2)))
^
cc-1129 c99: ERROR File = wordsplit.c, Line = 65
A left brace ("{") is expected at this point.
_wsplt_error (const char *fmt, ...)
^
cc-1020 c99: ERROR File = wordsplit.c, Line = 69
The identifier "fmt" is undefined.
va_start (ap, fmt);
^
Additionally, I get the same failures in the testsuite as reported
for Solaris 10 in the thread "testsuite: 63 85 failed", but instead
of segfaults, I get the two "permission denied" errors shown below.
regrads,
rainer
063/testsuite.log
--- /dev/null 2013-12-22 17:59:19.000000000 +0100
+++
/usr/people/canavan/src/tar/tar-1.27.1/tests/testsuite.dir/at-groups/63/stderr
2013-12-22 17:59:19.544009230 +0100
@@ -0,0 +1,2 @@
+tar: unable to record current working directory: Permission denied
+cmp: extract/f: No such file or directory
./extrac09.at:27: exit code was 2, expected 0
63. extrac09.at:24: 63. no need to save dir with unreadable . and ..
(extrac09.at:24): FAILED (extrac09.at:27)
085/testsuite.log
--- - 2013-12-22 18:00:21.092479000 +0100
+++
/usr/people/canavan/src/tar/tar-1.27.1/tests/testsuite.dir/at-groups/85/stderr
2013-12-22 18:00:21.086106117 +0100
@@ -1,2 +1,3 @@
-tar: a: Directory is new
+tar: .: Cannot getcwd: Permission denied
+tar: Error is not recoverable: exiting now
--- - 2013-12-22 18:00:21.099059000 +0100
+++
/usr/people/canavan/src/tar/tar-1.27.1/tests/testsuite.dir/at-groups/85/stdout
2013-12-22 18:00:21.093834208 +0100
@@ -1,3 +1 @@
-a/
-a/file
./listed03.at:27: exit code was 2, expected 0
diff -ur ./lib/wordsplit.c ../../tar-1.27.1/lib/wordsplit.c
--- ./lib/wordsplit.c Thu Mar 14 21:18:10 CET 2013
+++ ../../tar-1.27.1/lib/wordsplit.c Sun Dec 22 16:22:23 CET 2013
@@ -61,7 +61,10 @@
abort ();
}
-static void __attribute__ ((__format__ (__printf__, 1, 2)))
+static void
+#ifdef __GNUC__
+__attribute__ ((__format__ (__printf__, 1, 2)))
+#endif
_wsplt_error (const char *fmt, ...)
{
va_list ap;
diff -ur ./lib/wordsplit.h ../../tar-1.27//lib/wordsplit.h
--- ./lib/wordsplit.h Thu Mar 14 21:18:10 CET 2013
+++ ../../tar-1.27//lib/wordsplit.h Sun Dec 22 16:19:25 CET 2013
@@ -34,9 +34,15 @@
const char *ws_escape;
void (*ws_alloc_die) (struct wordsplit * wsp);
void (*ws_error) (const char *, ...)
- __attribute__ ((__format__ (__printf__, 1, 2)));
+#ifdef __GNUC__
+ __attribute__ ((__format__ (__printf__, 1, 2)))
+#endif
+;
void (*ws_debug) (const char *, ...)
- __attribute__ ((__format__ (__printf__, 1, 2)));
+#ifdef __GNUC__
+ __attribute__ ((__format__ (__printf__, 1, 2)))
+#endif
+;
const char **ws_env;
const char *(*ws_getvar) (const char *, size_t, void *);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-tar] wordsplit on IRIX,
Rainer M. Canavan <=