Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 343445 - dev-vcs/mercurial-1.6.4.ebuild: emerge fails because of missing inttypes.h on interix
Summary: dev-vcs/mercurial-1.6.4.ebuild: emerge fails because of missing inttypes.h on...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Mac OSX (show other bugs)
Hardware: x86 Interix
: High major (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-31 00:17 UTC by Leho Kraav (:macmaN @lkraav)
Modified: 2014-01-14 19:00 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Leho Kraav (:macmaN @lkraav) 2010-10-31 00:17:22 UTC
http://paste.pocoo.org/show/283674/

...
running build_ext
building 'mercurial.base85' extension
creating build-2.6/temp.interix-3.5-x86-2.6
creating build-2.6/temp.interix-3.5-x86-2.6/mercurial
i586-pc-interix3.5-gcc -DNDEBUG -fno-strict-aliasing -I/opt/gentoo/usr/include/python2.6 -c mercurial/base85.c -o build-2.6/temp.interix-3.5-x86-2.6/mercurial/base85.o
i586-pc-interix3.5-gcc -shared -fno-strict-aliasing build-2.6/temp.interix-3.5-x86-2.6/mercurial/base85.o -lpython2.6 -o build-2.6/lib.interix-3.5-x86-2.6/mercurial/base85.so
building 'mercurial.bdiff' extension
i586-pc-interix3.5-gcc -DNDEBUG -fno-strict-aliasing -I/opt/gentoo/usr/include/python2.6 -c mercurial/bdiff.c -o build-2.6/temp.interix-3.5-x86-2.6/mercurial/bdiff.o
mercurial/bdiff.c:46:22: error: inttypes.h: No such file or directory
error: command 'i586-pc-interix3.5-gcc' failed with exit status 1
 [31;01m*[0m ERROR: dev-vcs/mercurial-1.6.4 failed:
 [31;01m*[0m   Building failed with CPython 2.6 in distutils_building() function
 [31;01m*[0m 
 [31;01m*[0m Call stack:
 [31;01m*[0m     ebuild.sh, line   62:  Called src_compile
 [31;01m*[0m   environment, line 5031:  Called distutils_src_compile
 [31;01m*[0m   environment, line 1265:  Called python_execute_function 'distutils_building'
 [31;01m*[0m   environment, line 3779:  Called die
 [31;01m*[0m The specific snippet of code:
 [31;01m*[0m                       die "${failure_message}";
 [31;01m*[0m 
 [31;01m*[0m If you need support, post the output of 'emerge --info =dev-vcs/mercurial-1.6.4',
 [31;01m*[0m the complete build log and the output of 'emerge -pqv =dev-vcs/mercurial-1.6.4'.
 [31;01m*[0m The complete build log is located at '/opt/gentoo/var/tmp/portage/dev-vcs/mercurial-1.6.4/temp/build.log'.
 [31;01m*[0m The ebuild environment file is located at '/opt/gentoo/var/tmp/portage/dev-vcs/mercurial-1.6.4/temp/environment'.
 [31;01m*[0m S: '/opt/gentoo/var/tmp/portage/dev-vcs/mercurial-1.6.4/work/mercurial-1.6.4'

this is apparently easily solved with a tip from https://developer.mozilla.org/en/Building_on_Windows_with_SFU_%28Interix%29:

 As SFU3.5 does not provide inttypes.h, create the following /usr/local/include/inttypes.h file:

 typedef unsigned long long uint64_t;

for my compiler to find it, i had to do:

 mv /usr/local/include/inttypes.h /opt/gentoo/usr/include/python2.6/

i'm sure there's a more correct location, but i didn't feel like messing around with this at 3am.
Comment 1 Fabian Groffen gentoo-dev 2010-10-31 20:34:14 UTC
if markus decides to use this hack, then the header can just be put in $EPREFIX/usr/include
Comment 2 Markus Duft (RETIRED) gentoo-dev 2010-11-02 07:44:16 UTC
this is a rather common problem with interix: it misses inttypes.h, but instead, all the correct definitions are in stdint.h (which is a standard header file too, so nothing wrong with that AFAIK). some packages (not too many actually, most check this) need to be patched to take stdint.h on interix, or if inttypes.h is not available. i'll create a patch for this when i get to it - there are more urgent things right now.

however, feel free to submit your own patch - i will look at it and proxy commit for you.
Comment 3 Fabian Groffen gentoo-dev 2014-01-14 19:00:57 UTC
state of interix is unknown