Thread View: gnu.utils.bug
1 messages
1 total messages
Started by Cliff Krumvieda
Thu, 10 Sep 1992 08:17
tar-1.11 build problems, with patches
Author: Cliff Krumvieda
Date: Thu, 10 Sep 1992 08:17
Date: Thu, 10 Sep 1992 08:17
104 lines
3811 bytes
3811 bytes
Howdy:
I had several (easily fixable) problems while building tar-1.11 for
our departmental workstations (sparcs running SunOS 4.1.1, HP's
running HP-UX 7.00, and RS6000's running AIX 3.2---I had problems on
the HP's and RS6000's only). Hopefully, these can be fixed before
tar-1.12 is released:
======================================================================
1. The HP-UX header file "/usr/include/pwd.h" references the type
"FILE *" and therefore "stdio.h" must be loaded before "pwd.h". This
caused problems during compilation of "names.c":
% diff -c names.c-dist names.c
*** names.c-dist Tue Jul 16 01:45:05 1991
--- names.c Thu Sep 10 10:21:20 1992
***************
*** 30,35 ****
--- 30,36 ----
#ifndef NONAMES
/* Whole module goes away if NONAMES defined. Otherwise... */
+ #include <stdio.h>
#include <pwd.h>
#include <grp.h>
======================================================================
2. Autoconf doesn't define "USG" for AIX compilations, but AIX shares
the System V timezone definitions. The compilation of getdate.c
barfed on the RS6000's:
% diff -c getdate.y-dist getdate.y
*** getdate.y-dist Tue Sep 1 17:57:48 1992
--- getdate.y Thu Sep 10 11:50:44 1992
***************
*** 850,856 ****
#ifdef __386BSD__
ftz.timezone = 0;
#else /* neither sgi nor 386BSD */
! #ifdef USG
extern time_t timezone;
ftz.timezone = (int) timezone / 60;
--- 850,856 ----
#ifdef __386BSD__
ftz.timezone = 0;
#else /* neither sgi nor 386BSD */
! #if defined(USG) || defined(_AIX)
extern time_t timezone;
ftz.timezone = (int) timezone / 60;
======================================================================
3. The AIX header file "/usr/include/stdlib.h" defines the following
prototype for getopt:
extern int getopt(int, char *[], char *);
This conflicts with the prototype in "getopt.h":
extern int getopt (int argc, char *const *argv, const char *shortopts);
(because of the "const"'s). Without the following fix, tar.c won't
compile on the RS6000's:
% diff -c getopt.h-dist getopt.h
*** getopt.h-dist Tue Aug 18 17:33:49 1992
--- getopt.h Thu Sep 10 10:39:48 1992
***************
*** 94,100 ****
--- 94,102 ----
};
#if __STDC__
+ #ifndef _AIX
extern int getopt (int argc, char *const *argv, const char *shortopts);
+ #endif
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
const struct option *longopts, int *longind);
extern int getopt_long_only (int argc, char *const *argv,
======================================================================
4. AIX uses "_etext" instead of "etext" as the first address above
program text. Without the following fix, malloc.c won't compile on
the RS6000's:
% diff -c malloc.c-dist malloc.c
*** malloc.c-dist Wed Sep 9 03:26:28 1992
--- malloc.c Thu Sep 10 11:56:34 1992
***************
*** 189,194 ****
--- 189,198 ----
extern char *start_of_data ();
+ #ifdef _AIX
+ #define etext _etext
+ #endif
+
#ifdef BSD
#ifndef DATA_SEG_BITS
#define start_of_data() &etext
======================================================================
Thanks for updating GNU tar. I hope these fixes help.
--Cliff
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads