The compilation fails due to conflicting return types in declarations of four functions in the GemPC430 part of ifd-gempc-0.9.1. The functions are OpenUSB(), WriteUSB(), ReadUSB(), and CloseUSB() which are declared in GemPC430/libusb_wrap.h with return types of gcore_t (an enum defined in common/GemCore.h) and are defined in GemPC430/libusb_wrap.c with return types of status_t (another enum defined in common/pcscdefines.h). Looking at the definitions of the functions, all the returns use elements of the status_t enum so presumably it's the definitions in libusb_wrap.h that are wrong. I thought C (unlike C++) treated all enums as integers and so didn't complain like this but perhaps that has changed for gcc-3.4.x (which is what I have recently changed to). Will try the fix and post a patch if it works... Reproducible: Always Steps to Reproduce: 1. emerge ifd-gempc 2. 3. Actual Results: >>> emerge (2 of 2) sys-apps/ifd-gempc-0.9.1 to / >>> Downloading http://ftp.heanet.ie/pub/gentoo/distfiles/ifd-gempc-0.9.1.tar.gz --16:01:05-- http://ftp.heanet.ie/pub/gentoo/distfiles/ifd-gempc-0.9.1.tar.gz => `/usr/portage/distfiles/ifd-gempc-0.9.1.tar.gz' Resolving ftp.heanet.ie... 193.1.219.100 Connecting to ftp.heanet.ie[193.1.219.100]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 304,104 [application/x-gzip] 100%[======================================================================================================================================>] 304,104 29.11K/s ETA 00:00 16:01:14 (32.43 KB/s) - `/usr/portage/distfiles/ifd-gempc-0.9.1.tar.gz' saved [304104/304104] >>> md5 src_uri ;-) ifd-gempc-0.9.1.tar.gz >>> Unpacking source... >>> Unpacking ifd-gempc-0.9.1.tar.gz to /var/tmp/portage/ifd-gempc-0.9.1/work * Applying ifd-gempc-0.9.1.gentoo.diff ... [ ok ] >>> Source unpacked. make -C common clean make[1]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' makedepend -f - -I. -I../GemPC410 -DGEMPC=410 *.c > .dependencies || true makedepend: warning: /usr/include/gnu/stubs.h: non-portable whitespace encountered at line 7 touch dep_stamp rm -f GCCmds.o GCUtils.o ifdhandler.o GCdebug.o rm -f .dependencies touch .dependencies make[1]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' make -C GemPC410 make[1]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/GemPC410' Making dependencies... makedepend -f - -I. -I../common -DGEMPC=410 *.c > .dependencies || true makedepend: warning: /usr/include/gnu/stubs.h: non-portable whitespace encountered at line 7 make -C ../common dep make[2]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' make[2]: Nothing to be done for `dep'. make[2]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' touch dep_stamp CFLAGS="-I/usr/local/include" ../check 410 make -C ../common CFLAGS="-O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include -I../GemPC410" all make[2]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include-I../GemPC410 -c -o GCCmds.o GCCmds.c checking for pcsclite.h... GCCmds.c: In function `GCCmdPowerDown': GCCmds.c:216: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdPowerUp': GCCmds.c:262: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c:273: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c:281: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c:286: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdGetOSVersion': GCCmds.c:341: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdConfigureSIOLine': GCCmds.c:374: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdCardStatus': GCCmds.c:392: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdSetMode': GCCmds.c:416: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include-I../GemPC410 -c -o GCUtils.o GCUtils.c yes checking for pcsc-lite version >= "1.1.2"... GCUtils.c: In function `gemcore_status_processing': GCUtils.c:321: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include-I../GemPC410 -c -o ifdhandler.o ifdhandler.c yes touch check_stamp cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include-I../GemPC410 -c -o GCdebug.o GCdebug.c cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include -c -o GCGBPTransport.o GCGBPTransport.c cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include -c -o gbpserial.o gbpserial.c make[2]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include -c -o GemPC410Utils.o GemPC410Utils.c cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include -c -o main.o main.c cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=410 -I/usr/local/include -c -o resetGemPC410.o resetGemPC410.c cc -o ifd-GemPC410 GCGBPTransport.o gbpserial.o GemPC410Utils.o ../common/ifdhandler.o ../common/GCCmds.o ../common/GCUtils.o main.o ../common/GCdebug.o rm -f libGemPC410.so cc -shared GCGBPTransport.o gbpserial.o GemPC410Utils.o ../common/ifdhandler.o ../common/GCCmds.o ../common/GCUtils.o -o libGemPC410.so chmod -x libGemPC410.so strip --strip-unneeded libGemPC410.so mv libGemPC410.so libGemPC410.so.0.9.1 ln -sf libGemPC410.so.0.9.1 libGemPC410.so.0 ln -sf libGemPC410.so.0 libGemPC410.so cc -o resetGemPC410 resetGemPC410.o make[1]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/GemPC410' make -C common clean make[1]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' rm -f GCCmds.o GCUtils.o ifdhandler.o GCdebug.o rm -f .dependencies touch .dependencies make[1]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' make -C GemPC430 make[1]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/GemPC430' Making dependencies... makedepend -f - -I. -I../common -DGEMPC=430 GCUSBTransport.c \ GemPC430Utils.c libusb_wrap.c > .dependencies || true makedepend: warning: /usr/include/gnu/stubs.h: non-portable whitespace encountered at line 7 make -C ../common dep make[2]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' make[2]: Nothing to be done for `dep'. make[2]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' touch dep_stamp CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ../check 430 make -C ../common CFLAGS="-O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=430 -I/usr/local/include -I../GemPC430" all checking for pcsclite.h... make[2]: Entering directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=430 -I/usr/local/include-I../GemPC430 -c -o GCCmds.o GCCmds.c GCCmds.c: In function `GCCmdPowerDown': GCCmds.c:216: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdPowerUp': GCCmds.c:262: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c:273: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c:281: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c:286: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdGetOSVersion': GCCmds.c:341: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdConfigureSIOLine': GCCmds.c:374: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdCardStatus': GCCmds.c:392: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type GCCmds.c: In function `GCCmdSetMode': GCCmds.c:416: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type yes checking for pcsc-lite version >= "1.1.2"... cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I.-I../common -DGEMPC=430 -I/usr/local/include -I../GemPC430 -c -o GCUtils.o GCUtils.c GCUtils.c: In function `gemcore_status_processing': GCUtils.c:321: warning: passing arg 4 of `GCGemCoreError' discards qualifiers from pointer target type cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=430 -I/usr/local/include-I../GemPC430 -c -o ifdhandler.o ifdhandler.c cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=430 -I/usr/local/include-I../GemPC430 -c -o GCdebug.o GCdebug.c yes checking for usb.h... make[2]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/common' cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=430 -I/usr/local/include -c -o GCUSBTransport.o GCUSBTransport.c yes checking for usb_get_busses... cc -O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse -Wall -fPIC -I. -I../common -DGEMPC=430 -I/usr/local/include -c -o libusb_wrap.o libusb_wrap.c libusb_wrap.c:77: error: conflicting types for 'OpenUSB' libusb_wrap.h:14: error: previous declaration of 'OpenUSB' was here libusb_wrap.c:77: error: conflicting types for 'OpenUSB' libusb_wrap.h:14: error: previous declaration of 'OpenUSB' was here libusb_wrap.c:227: error: conflicting types for 'WriteUSB' libusb_wrap.h:15: error: previous declaration of 'WriteUSB' was here libusb_wrap.c:227: error: conflicting types for 'WriteUSB' libusb_wrap.h:15: error: previous declaration of 'WriteUSB' was here libusb_wrap.c:270: error: conflicting types for 'ReadUSB' libusb_wrap.h:16: error: previous declaration of 'ReadUSB' was here libusb_wrap.c:270: error: conflicting types for 'ReadUSB' libusb_wrap.h:16: error: previous declaration of 'ReadUSB' was here libusb_wrap.c:304: error: conflicting types for 'CloseUSB' libusb_wrap.h:17: error: previous declaration of 'CloseUSB' was here libusb_wrap.c:304: error: conflicting types for 'CloseUSB' libusb_wrap.h:17: error: previous declaration of 'CloseUSB' was here make[1]: *** [libusb_wrap.o] Error 1 make[1]: *** Waiting for unfinished jobs.... yes touch check_stamp make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/ifd-gempc-0.9.1/work/ifd-gempc-0.9.1/GemPC430' make: *** [all] Error 2 !!! ERROR: sys-apps/ifd-gempc-0.9.1 failed. !!! Function src_compile, Line 29, Exitcode 2 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. musashimaru root # emerge info output::: Portage 2.0.51-r3 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r13 i686) ================================================================= System uname: 2.6.9-gentoo-r13 i686 AMD Athlon(tm) XP 1800+ Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe -mtune=athlon-xp -march=athlon-xp -fomit-frame-pointer -falign-functions=32 -funroll-loops -mfpmath=sse" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://ftp.heanet.ie/pub/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow X acpi alsa arts atm avi bash-completion berkdb bitmap-fonts canna cdr cjk crypt cups directfb dvd dvdr encode fam fftw foomaticdb fortran freewnn gdbm gif gpm gtk gtk2 imagemagick imlib immqt-bc java jpeg kde libwww mad mikmod mmx motif mpeg ncurses nls nptl nvidia oggvorbis opengl pam pdflib perl pic png ppds python qt quicktime readline sdl spell sse ssl svg svga tcltk tcpd tetex tiff truetype unicode xml2 xmms xprint xv zlib"
Created attachment 47220 [details, diff] Patch to fix the compilation problem This patches the header file ifd-gempc-0.9.1/GemPC430/libusb_wrap.h so that the return types match those used in ifd-gempc-0.9.1/GemPC430/libusb_wrap.c.
Thanks Jos. Added 0.9.3 version bump too that includes the patch. Thanks for the bug report.