emerge pycrypto-2.1.0 fail on FreeBSD 7.2 with this error. > i486-gentoo-freebsd7.1-gcc -pthread -pipe -fomit-frame-pointer -fno-inline-functions -fPIC -O3 -fomit-frame-pointer -Isrc/ -Isrc/libtom/ -I/usr/include/python2.6 -c src/DES.c -o build-2.6/temp.freebsd-7.2-RELEASE-i386-2.6/src/DES.o > In file included from src/libtom/tomcrypt.h:72, > from src/libtom/tomcrypt_des.c:11, > from src/DES.c:32: > src/libtom/tomcrypt_pk.h:502: error: conflicting types for 'wchar_t' > /usr/include/stdlib.h:58: error: previous declaration of 'wchar_t' was here > error: command 'i486-gentoo-freebsd7.1-gcc' failed with exit status 1 In "src/libtom/tomcrypt_pk.h", there is "#if defined" to avoid duplicated "wchar_t" declaration like this. > #if (defined(SIZE_MAX) || __STDC_VERSION__ >= 199901L || defined(WCHAR_MAX) || defined(_WCHAR_T) || defined(_WCHAR_T_DEFINED)) && !defined(LTC_NO_WCHAR) > #include <wchar.h> > #else > typedef ulong32 wchar_t; > #endif But "/usr/include/stdlib.h" defines "_WCHAR_T_DECLARED" but not "_WCHAR_T_DEFINED". > #ifndef _WCHAR_T_DECLARED > typedef __wchar_t wchar_t; > #define _WCHAR_T_DECLARED > #endif Reproducible: Always Steps to Reproduce: 1.emerge =pycrypto-2.1.0 Portage 2.2_rc61 (default/bsd/fbsd/x86/7.2, gcc-4.3.4, freebsd-lib-7.2-r1, 7.2-RELEASE i386) ================================================================= System uname: FreeBSD-7.2-RELEASE-i386-32bit-ELF Timestamp of tree: Mon, 25 Jan 2010 06:15:01 +0000 app-shells/bash: 4.0_p35 dev-lang/python: 2.5.2-r8, 2.6.4, 3.1.1-r1 dev-python/pycrypto: 2.1.0-r1 dev-util/cmake: 2.8.0 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.5.3 sys-devel/autoconf: 2.65 sys-devel/automake: 1.10.3, 1.11.1 sys-devel/binutils: 2.20 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 7.2-r1 ACCEPT_KEYWORDS="x86-fbsd ~x86-fbsd" ACCEPT_LICENSE="* -@EULA" ACCEPT_PROPERTIES="*" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ARCH="x86-fbsd" AUTOCLEAN="yes" CBUILD="i486-gentoo-freebsd7.1" CFLAGS="-O2 -pipe -fomit-frame-pointer" CHOST="i486-gentoo-freebsd7.1" CLEAN_DELAY="5" CLICOLOR="1" COLLISION_IGNORE="/lib/modules" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/terminfo" CVS_RSH="ssh" CXXFLAGS="-O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" ECHANGELOG_USER="Naohiro Aota <naota@elisp.net>" EDITOR="/usr/bin/emacsclient" ELIBC="FreeBSD" EMERGE_DEFAULT_OPTS="-ja --load-average 3 -avt --keep-going" EMERGE_WARNING_DELAY="10" EPREFIX="" EROOT="/" FEATURES="assume-digests chflags distlocks fixpackages metadata-transfer news parallel-fetch preserve-libs protect-owned sfperms strict unmerge-logs unmerge-orphans userfetch" FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}"" FTP_PASSIVE_MODE="YES" GCC_SPECS="" GDK_USE_XFT="1" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" HOME="/root" INFOPATH="/usr/share/info:/usr/share/binutils-data/i486-gentoo-freebsd7.1/2.20/info:/usr/share/gcc-data/i486-gentoo-freebsd7.1/4.3.4/info" INPUT_DEVICES="keyboard mouse" KERNEL="FreeBSD" LANG="C" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LDFLAGS="" LESS="-R -M --shift 5" LESSOPEN="|lesspipe.sh %s" LINGUAS="ja" LOGNAME="root" LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:" MAKE="gmake" MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i486-gentoo-freebsd7.1/2.20/man:/usr/share/gcc-data/i486-gentoo-freebsd7.1/4.3.4/man" NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" NOCOLOR="true" OLDPWD="/root" PAGER="/usr/bin/lv -Ou8 -c" PATH="/usr/local/texlive/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i486-gentoo-freebsd7.1/gcc-bin/4.3.4:/usr/local/teTeX/bin:/usr/local/bin:/root/bin" PKGDIR="/usr/portage/packages" PORTAGE_ARCHLIST="ppc x86-openbsd ppc-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris mips-irix m68k sh x86-solaris sparc-fbsd" PORTAGE_BINHOST_CHUNKSIZE="3000" PORTAGE_BIN_PATH="/usr/lib/portage/bin" PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png" PORTAGE_CONFIGROOT="/" PORTAGE_DEBUG="0" PORTAGE_DEPCACHEDIR="/var/cache/edb/dep" PORTAGE_ELOG_CLASSES="log warn error" PORTAGE_ELOG_MAILFROM="portage@localhost" PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}" PORTAGE_ELOG_MAILURI="root" PORTAGE_ELOG_SYSTEM="save_summary echo" PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5" PORTAGE_FETCH_RESUME_MIN_SIZE="350K" PORTAGE_GID="250" PORTAGE_INST_GID="0" PORTAGE_INST_UID="0" PORTAGE_PYM_PATH="/usr/lib/portage/pym" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_RSYNC_RETRIES="3" PORTAGE_TMPDIR="/var/tmp" PORTAGE_VERBOSE="1" PORTAGE_WORKDIR_MODE="0700" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/tomoyo /usr/portage/local/layman/xemacs /usr/portage/local/layman/ruby /usr/portage/local/layman/sunrise /usr/portage/local/layman/xen /usr/portage/local/layman/arcon /usr/portage/local/layman/emacs /usr/portage/local/layman/php-experimental /usr/portage/local/layman/php-testing /usr/portage/local/layman/games /usr/portage/local/layman/gamerlay /usr/portage/local/layman/haskell /usr/portage/local/layman/kvm /usr/portage/local/layman/voip /usr/portage/local/layman/java-overlay /usr/portage/local/layman/pythonhead" PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND" PWD="/root" PYTHONDONTWRITEBYTECODE="1" RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}"" ROOT="/" ROOTPATH="/opt/bin:/usr/i486-gentoo-freebsd7.1/gcc-bin/4.3.4" RPMDIR="/usr/portage/rpm" RUBY_TARGETS="ruby18" S9XKEYS="27,100,99,115,120,113,114,13,32,104,108,107,106,121,110,117,109" SHELL="/bin/bash" SHLVL="2" SYNC="rsync://rsync.gentoo.org/gentoo-portage" TERM="cons25" USE="X acl berkdb cli cracklib crypt cups cxx dri gdbm gnutls iconv ipv6 java5 java6 jpeg modules ncurses nis nls nptlonly oss pam pcre perl png ppds python readline reflection session spl sqlite ssl svg tcpd unicode x86-fbsd xcb xorg zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="FreeBSD" INPUT_DEVICES="keyboard mouse" KERNEL="FreeBSD" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ja" RUBY_TARGETS="ruby18" USERLAND="BSD" VIDEO_CARDS="apm ark chips cirrus cyrix dummy i128 intel mach64 mga neomagic nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tga trident tseng via vmware" USER="root" USERLAND="BSD" USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS" USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND" USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d" VIDEO_CARDS="apm ark chips cirrus cyrix dummy i128 intel mach64 mga neomagic nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tga trident tseng via vmware" XDG_CONFIG_DIRS="/etc/xdg" XDG_DATA_DIRS="/usr/local/share:/usr/share" _="/usr/bin/emerge"
Created attachment 217385 [details, diff] patch for the ebuild This patch would solve the problem.
It's using distutils, I don't know well how it works but there must exist a portable way of checking non standard features (like autoconf does) rather than relying on system-dependendant #defines to guess if it is available or not. autoconf's stuff I am referring to is this: http://sources.redhat.com/autobook/autobook/autobook_33.html#SEC33 Anyway, the patch is for the python team but it is preferable that a sane check is sent upstream.
This seems to be solved at some version.