[OpenAFS] building openafs on ppc64le architecture on Linux

Benjamin Kaduk kaduk@mit.edu
Sat, 28 Apr 2018 20:12:42 -0500


On Sat, Apr 28, 2018 at 10:56:43PM +0000, Troy Benjegerdes wrote:
> On Sun, Mar 04, 2018 at 07:05:40PM -0600, Benjamin Kaduk wrote:
> > On Sun, Mar 04, 2018 at 04:31:10AM -0500, Gary Gatling wrote:
> > > Hello.
> > > 
> > > 
> > > But now the third problem / error I get is:
> > > 
> > > rx_pthread.c:164:97: error: expected expression before ';' token
> > >   error = CV_TIMEDWAIT(&rx_event_handler_cond, &event_handler_mutex,
> > > &rx_pthread_next_event_time);
> > > 
> > 
> > Hmm, it is as if CV_TIMEDWAIT() somehow got #defined away.
> > 
> > I see from the pastebin that you are basing your work off 1.6.22; I
> > would recommend starting again from master (or 1.8.0pre5 which is
> > pretty similar), since (1) new code would have to go through master
> > anyway, and (2) master has some changes in this area, using the
> > OpenAFS Portable Runtime (opr) library instead of directly using
> > pthread calls, which may or may not be relevant.
> 
> I'm looking at this on Debian 9 PPC64le, and the latest git master,
> ( Thu apr 26, cfa74883e4996dfee2bd6ffaa3b967e5a7941e0b ) and strange
> things like AFS_NORETURN are not defined when compiling 'assert.c'
> in opr.h
> 
> (something is mangling my terminal with cut & paste here..)
> 
> opr.h: In function ‚?~opr_AssertionFailed‚?T:
> opr.h:19:52: error: expected declaration specifiers before ‚?~AFS_NORETURN‚?T
>  extern void opr_AssertionFailed(const char *, int) AFS_NORETURN;
>                                                     ^~~~~~~~~~~~
> opr.h:20:62: error: expected ‚?~=‚?T, ‚?~,‚?T, ‚?~;‚?T, ‚?~asm‚?T or ‚?~__attribute__‚?T before ‚?~AFS_NORETURN‚?T
>  extern void opr_AssertFailU(const char *, const char *
> 
> 
> I don't quite understand how this could not be defined, nor do
> I fully understand how 'include/afs/stds.h' is supposed to be included
> that does define that.
> 
> Any thoughts here?

Generally at this point I end up trying to see what the preprocessor
has/has not done to my file, whether via cc -E or some deeper
compiler debugging options (IIRC there are several choices in gcc to
emit intermediately preprocessed representations, but the
incantations are pretty arcane).  Even cc -E should give some sense
of what files are included, though.

-Ben