﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	product
39	mygetopt.c fails compilation on 64-bit FreeBSD	saper@system.pl	Jean-Yves Lamoureux	"Hello, mygetopt.c fails on amd64 FreeBSD:

{{{
cc -DHAVE_CONFIG_H -I. -I..  -I.. -I../cucul -I../caca -DLIBCACA=1 -DX_DISPLAY_MISSING=1 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/freetype2 -O2 -fno-strict-aliasing -pipe  -fno-strength-reduce -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare -MT img2txt-img2txt.o -MD -MP -MF .deps/img2txt-img2txt.Tpo -c -o img2txt-img2txt.o `test -f 'img2txt.c' || echo './'`img2txt.c
mv -f .deps/img2txt-img2txt.Tpo .deps/img2txt-img2txt.Po
cc -DHAVE_CONFIG_H -I. -I..  -I.. -I../cucul -I../caca -DLIBCACA=1 -DX_DISPLAY_MISSING=1 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/freetype2 -O2 -fno-strict-aliasing -pipe  -fno-strength-reduce -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare -MT img2txt-mygetopt.o -MD -MP -MF .deps/img2txt-mygetopt.Tpo -c -o img2txt-mygetopt.o `test -f 'mygetopt.c' || echo './'`mygetopt.c
mygetopt.c:29: error: conflicting types for 'uintptr_t'
/usr/include/stdint.h:102: error: previous declaration of 'uintptr_t' was here
mygetopt.c: In function 'mygetopt':
mygetopt.c:46: warning: cast from pointer to integer of different size
mygetopt.c:46: warning: cast to pointer from integer of different size
*** Error code 1
}}}

1) There is some strange construct like this (mygetopt.c:46):


{{{    
     char **argv = (char **)(uintptr_t)_argv;
}}}

What is this needed for?

2) and above (mygetopt.c:29):

{{{
#ifndef __intptr_t_defined
typedef unsigned int            uintptr_t;
#endif
}}}


3) I had to change this to:

{{{
#ifndef _INTPTR_T_DECLARED
typedef unsigned int            uintptr_t;
#endif
}}}

and now 64-bit pointers are working.

On the other hand, since we have:

{{{
% grep -i getopt /usr/obj//usr/ports/graphics/libcaca/work/libcaca-0.99.beta13/config.h    
/* Define to 1 if you have the <getopt.h> header file. */
#define HAVE_GETOPT_H 1
/* Define to 1 if you have the `getopt_long' function. */
#define HAVE_GETOPT_LONG 1
}}}

the ""mygetopt.[ch]"" code isn't going to be used at all.
Maybe it makes sense to skip building this component altogether?

Greets,

--Marcin"	defect	closed	major		core	0.99.beta13	fixed	64bit amd64 FreeBSD getopt mygetopt		img2txt
