Article View: gnu.utils.bug
Article #784tar-1.11 build problems, with patches
From: 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
Technical Details
Message-ID:
<9209101617.AA03664@hermod.cs.cornell.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!cs.cornell.edu!cliffShow Full Headers
Complete Article Headers
Newsgroups: gnu.utils.bug Path: arc1-ca.pugleaf.net!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