home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: gnu.utils.bug
- Path: sparky!uunet!cis.ohio-state.edu!cs.cornell.edu!cliff
- From: cliff@cs.cornell.edu (Cliff Krumvieda)
- Subject: tar-1.11 build problems, with patches
- Message-ID: <9209101617.AA03664@hermod.cs.cornell.edu>
- Sender: gnulists@ai.mit.edu
- Organization: GNUs Not Usenet
- Distribution: gnu
- Date: Thu, 10 Sep 1992 08:17:04 GMT
- Approved: bug-gnu-utils@prep.ai.mit.edu
- Lines: 105
-
- 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
-
-