This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Build errors on AIX


[removing bug-gdb@]

On Wednesday 24 February 2010 12:51:36, Harald Koenig wrote:
> On Feb 23, Harald Koenig wrote:
> 
> > right now I'm trying to build gdb on AIX 6.1 which right now fails here
> > 
> >       "gdb-CVS-20100222/gdb/aix-thread.c", line 352.46: 1506-280 (W) Function argument assignment between types "int*" and "unsigned int*" is not allowed.
                                                    ^^^^^^

How does one read that?  line 352, column 46?  On my sources,
352 has:

352:	  if (!ptrace32 (PTT_READ_GPRS, tid, gprs32, 0, NULL))
353:	    memset (gprs32, 0, sizeof (gprs32));

> > where the source reads like this -- hmmmmm....
> > 
> >   /* getthrds(3) isn't prototyped in any AIX 4.3.3 #include file.  */
> >   extern int getthrds (pid_t, struct thrdsinfo64 *,
> >                        int, pthdb_tid_t *, int);
> 

Anyway, ignoring line numbers, what's the compiler complaining about?
Is it the signness of pthdb_tid_t that is wrong?

> with the attached patch AIX 6.1 builds fine, and 5.1 still does so....
> (_AIX51 is defined in 5.2/5.3 too!  I've not tested 5.0 though which is 
> why I don't check _AIX50 which is defined in 5.1-5.3 too).

It would perhaps be better to autoconf the getthrds declaration being
present, here, in gdb/configure.ac:

   aix*)
      AC_MSG_CHECKING(for AiX thread debugging library)
      AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
                   [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
                                   [#ifndef PTHDB_VERSION_3
                                    #error
                                    #endif],
                                   gdb_cv_have_aix_thread_debug=yes,
                                   gdb_cv_have_aix_thread_debug=no)])
      AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
      if test $gdb_cv_have_aix_thread_debug = yes; then
         CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
         CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
         CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
      fi
      ;;
   esac

But I really don't know much about AIX.  Joel?  What do you
think?  You seem to be one of that last that touched
this `getthrds' bit of code.  :-)

> but:  6.1 has the same break point problems as 5.3:
> 
> - with no breakpoint before 1st run, break points can't be set later at all
> 
> - otherwise break points seem to work

I can't really guess exactly what's going on here.  AIX/RS6000
is probably the port that most needs love of all the supported
ports.  E.g, I wouldn't be surprised if recent changes like PIE
or multi-program support and the revamping around these broke
this port, for it does things in non-standard ways.  These
commands may offer some clues:

 "(gdb) maint info breakpoints"
 "(gdb) set debug infrun 1"
 "(gdb) set target infrun 1"

If you have an older gdb that works, I think we get to
debug the new gdb to try to track this down.

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]