🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Cliff Krumvieda Thu, 10 Sep 1992 08:17
tar-1.11 build problems, with patches
#784
Author: Cliff Krumvieda
Date: Thu, 10 Sep 1992 08:17
104 lines
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