This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problem with '-static' in 3.0 release on AIX
- To: David Edelsohn <dje at watson dot ibm dot com>
- Subject: Re: Problem with '-static' in 3.0 release on AIX
- From: Albert Chin-A-Young <china at thewrittenword dot com>
- Date: Fri, 22 Jun 2001 12:45:22 -0500
- Cc: gcc at gcc dot gnu dot org
- References: <china@thewrittenword.com> <200106221709.NAA24732@makai.watson.ibm.com>
On Fri, Jun 22, 2001 at 01:09:15PM -0400, David Edelsohn wrote:
> >>>>> Albert Chin-A-Young writes:
>
> Albert> According to /usr/include/sys/core.h, struct core_dumpx has no member
> Albert> c_impl on AIX 4.3.2. We have v4.3.2.10 of bos.adt.include.
>
> The two changes between AIX 4.3.2 and AIX 4.3.3 are __ld_info32
> and c_impl. rs6000-core.c already checks for __ld_info32.
>
> Try changing the guard for the definition of CNEW_IMPL:
>
> -#ifdef AIX_CORE_DUMPX_CORE
> +#if defined (AIX_CORE_DUMPX_CORE) && defined (__ld_info32)
>
> If this works, I will submit this patch for backward compatibility
> to the binutils sources.
It doesn't work. <sys/ldr.h> gets included while bfd/rs6000-core.c is
being built. It has:
#ifdef __LDINFO_PTRACE32__
#ifdef __64BIT__
/* Use 'struct __ld_info32' when calling ptrace to debug a 32-bit
process. */
struct __ld_info32 {
__I_FIELDS(__I_INT32,__I_PTR32, __I_EMPTY)
};
#else
#define __ld_info32 ld_info
#endif
#endif /* __LDINFO_PTRACE32__ */
and bfd/rs6000-core.c has:
#include <sys/user.h>
#define __LDINFO_PTRACE32__ /* for __ld_info32 */
#define __LDINFO_PTRACE64__ /* for __ld_info64 */
#include <sys/ldr.h>
#include <sys/core.h>
#include <sys/systemcfg.h>
So, __ld_info32 is defined on AIX 4.3.2 by bfd/rs6000-core.c.
How about an autoconf check to test for c_impl then modifying the
ifdef to #ifdef AIX_CORE_DUMPX_HAS_C_IMPL? This should be trivial for
me to do. I take it I only care about c_impl in struct core_dumpx and
not core_dump?
--
albert chin (china@thewrittenword.com)