SQLite User Forum

AIX build issue
Login

AIX build issue

(1) By Robin Geffroy (RobinG) on 2022-03-09 09:15:35 [source]

Hello,

we just updated to sqlite-3.38.0 (from sqlite-3.36.0) and we encounter a build issue with xlc compiler. Here is our command line :

$ xlc -O -g -q64 -DNLS -D_LARGEFILE64_SOURCE -qpic -G -bnoentry -bexpfull -bautoexp -bernotok -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DESERIALIZE -DSQLITE3_EXPORTS -DSQLITE_THREADSAFE=0 sqlite3.c -o libcftsqlite3.so`
"sqlite3.c", line 172757.23: 1506-277 (S) Syntax error: possible missing ';' or ','?
"sqlite3.c", line 172758.23: 1506-277 (S) Syntax error: possible missing ';' or ','?
"sqlite3.c", line 172759.23: 1506-277 (S) Syntax error: possible missing ';' or ','?
It comes from main.c, here is the code sample responsible for this :
case SQLITE_TESTCTRL_LOGEST: {                            
  double rIn = va_arg(ap, double);                        
  LogEst rLogEst = sqlite3LogEstFromDouble(rIn);          
  u64 iInt = sqlite3LogEstToInt(rLogEst);                 
  va_arg(ap, int*)[0] = rLogEst;                          
  va_arg(ap, u64*)[0] = iInt;                             
  va_arg(ap, int*)[0] = sqlite3LogEst(iInt);              
  break;                                                  
}

It seems xlc compiler does not like dereferencing va_arg() directly. I locally fixed it by using some temporary variables instead.

It might be due to an old version of xlc on our side though :

$ xlc -qversion                
IBM XL C/C++ for AIX, V11.1 (5724-X13)             
Version: 11.01.0000.0024                           

Regards, Robin

(2.1) By Richard Hipp (drh) on 2022-03-10 11:25:12 edited from 2.0 in reply to 1 [link] [source]

Please download check-in 46d1a6de620f26fe and let us know whether or not the change clears your AIX build problem.

(3) By anonymous on 2022-03-10 09:02:46 in reply to 2.0 [link] [source]

I think you mean the child of that commit, 46d1a6de.

(4) By Richard Hipp (drh) on 2022-03-10 11:25:29 in reply to 3 [link] [source]

Yes. Copy/Paste error now fixed.