bug in devil lib, /usr/include/IL/il.h

2019-04-14 21:14发布

Details

Description:

When trying to compile spring (in AUR), the compilation procedure quits with the following error:

In file included from rts/Map/SM3/terrain/TerrainBase.h:41,
from rts/Map/SM3/Sm3Map.h:6,
from rts/Map/ReadMap.cpp:19:
/usr/include/IL/il.h:497: error: '' has incomplete type
/usr/include/IL/il.h:497: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:498: error: '' has incomplete type
/usr/include/IL/il.h:498: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:505: error: '' has incomplete type
/usr/include/IL/il.h:505: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:516: error: '' has incomplete type
/usr/include/IL/il.h:516: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:518: error: '' has incomplete type
/usr/include/IL/il.h:518: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:521: error: '' has incomplete type
/usr/include/IL/il.h:521: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:522: error: '' has incomplete type
/usr/include/IL/il.h:522: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:525: error: '' has incomplete type
/usr/include/IL/il.h:525: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:540: error: '' has incomplete type
/usr/include/IL/il.h:540: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:552: error: '' has incomplete type
/usr/include/IL/il.h:552: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:553: error: '' has incomplete type
/usr/include/IL/il.h:553: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:554: error: '' has incomplete type
/usr/include/IL/il.h:554: error: invalid use of 'ILvoid'
/usr/include/IL/il.h:568: error: '' has incomplete type
/usr/include/IL/il.h:568: error: invalid use of 'ILvoid'

Additional info:

This error is clearly related to a bug in /usr/include/IL/il.h, ownedby the devil package. All occurences of "int name(ILvoid);" in the fileneed to be replaced by "int name(void);".

It's already reported in DevIL's bugtracker: http://sourceforge.net/tracker/index.php?func=detail&aid=1651292&group_id=4470&atid=104470

Quick'n'dirty sed patch:
sed 's|(ILvoid)|(void)|g' -i /usr/include/IL/il.h

(For the spring package, you'll also need:
sed '101 a/>> end_p' -i $startdir/src/spring_0.74b3/rts/System/tdf_grammar.hpp)

Big thanks to Cirdan for the information :-)

Steps to reproduce:

Compile Spring.