Hello there,
Seems that some code in new pike 7.5 use some special extension of Gcc (3.x I assume) :
/usr/home/kiwi/Pike-v7.5.17/src/array.c:268: syntax error before `PRINTPTRDIFFT' /usr/home/kiwi/Pike-v7.5.17/src/array.c: In function `simple_set_index': /usr/home/kiwi/Pike-v7.5.17/src/array.c:321: syntax error before `PRINTPTRDIFFT' /usr/home/kiwi/Pike-v7.5.17/src/array.c: In function `array_get_item_ptr': /usr/home/kiwi/Pike-v7.5.17/src/array.c:1295: syntax error before `PRINTPTRDIFFT'
The code that blown is :
index_error(0,0,0,&tmp,ind, "Index %"PRINTPIKEINT"d is out of array range " "%"PRINTPTRDIFFT"d..%"PRINTPTRDIFFT"d.\n", p, -a->size, a->size-1);
The %"PRINTPTRDIFFT" part is not handled by my GCC (gcc 2.95.4 20020320 [FreeBSD]).
Removing the "PRINTPTRDIFFT solve the problem since FreeBSD 4.8 / 4.9 are stable OS and gcc 2.95.x are on lots of OS.
BTW: I am in the process to add a pikefarm there to show Pike developpers the problems.
/Xavier
PRINTPTRDIFFT isn't a gccism. It's created by configure.in and is defined in acconfig.h/machine.h.
If it isn't defined, something is erranous in the configure.
What does your machine.h say about PRINTPTRDIFFT?
/ Mirar
Previous text:
2004-01-16 13:24: Subject: PRINTPTRDIFFT on pike 7.5
Hello there,
Seems that some code in new pike 7.5 use some special extension of Gcc (3.x I assume) :
/usr/home/kiwi/Pike-v7.5.17/src/array.c:268: syntax error before `PRINTPTRDIFFT' /usr/home/kiwi/Pike-v7.5.17/src/array.c: In function `simple_set_index': /usr/home/kiwi/Pike-v7.5.17/src/array.c:321: syntax error before `PRINTPTRDIFFT' /usr/home/kiwi/Pike-v7.5.17/src/array.c: In function `array_get_item_ptr': /usr/home/kiwi/Pike-v7.5.17/src/array.c:1295: syntax error before `PRINTPTRDIFFT'
The code that blown is :
index_error(0,0,0,&tmp,ind, "Index %"PRINTPIKEINT"d is out of array range " "%"PRINTPTRDIFFT"d..%"PRINTPTRDIFFT"d.\n", p, -a->size, a->size-1);
The %"PRINTPTRDIFFT" part is not handled by my GCC (gcc 2.95.4 20020320 [FreeBSD]).
Removing the "PRINTPTRDIFFT solve the problem since FreeBSD 4.8 / 4.9 are stable OS and gcc 2.95.x are on lots of OS.
BTW: I am in the process to add a pikefarm there to show Pike developpers the problems.
/Xavier
/ Brevbäraren
Le 16 janv. 04, à 13:30, Mirar @ Pike developers forum a écrit :
PRINTPTRDIFFT isn't a gccism. It's created by configure.in and is defined in acconfig.h/machine.h.
If it isn't defined, something is erranous in the configure.
What does your machine.h say about PRINTPTRDIFFT?
kiwi@mailhub1-vil:~/Pike-v7.5.17/build/freebsd-4.8-release-p13-i386> grep PRINTPTR machine.h /* #undef PRINTPTRDIFFT */
So... Here is there problem :p
Looks like it.
The configure test looks like this:
MY_AC_CHECK_PRINTF_INT_TYPE(ptrdiff_t, "t" "" "l" "ll" "L", "", PRINTPTRDIFFT, [%${res}d, %${res}x])
Do you have a ptrdiff_t at all? Maybe Pike is using some replacement type but forgot to default the printing to the correct type...
What does configure say here? checking how to print ptrdiff_t... <?>
/ Mirar
Previous text:
2004-01-16 14:05: Subject: Re: PRINTPTRDIFFT on pike 7.5
Le 16 janv. 04, à 13:30, Mirar @ Pike developers forum a écrit :
PRINTPTRDIFFT isn't a gccism. It's created by configure.in and is defined in acconfig.h/machine.h.
If it isn't defined, something is erranous in the configure.
What does your machine.h say about PRINTPTRDIFFT?
kiwi@mailhub1-vil:~/Pike-v7.5.17/build/freebsd-4.8-release-p13-i386> grep PRINTPTR machine.h /* #undef PRINTPTRDIFFT */
So... Here is there problem :p
/ Brevbäraren
Le 16 janv. 04, à 21:45, Mirar @ Pike developers forum a écrit :
Looks like it.
The configure test looks like this:
MY_AC_CHECK_PRINTF_INT_TYPE(ptrdiff_t, "t" "" "l" "ll" "L", "", PRINTPTRDIFFT, [%${res}d, %${res}x])
Do you have a ptrdiff_t at all? Maybe Pike is using some replacement type but forgot to default the printing to the correct type...
What does configure say here? checking how to print ptrdiff_t... <?>
It says "yes" :)
And the machine is in pike farm : http://pike.ida.liu.se/generated/pikefarm/7.5/1672_383/makelog.html (all data is here http://pike.ida.liu.se/development/pikefarm/result.xml? id=1672_383&pike=7_5 ).
/Xavier
Nonono,
checking how to printf ptrdiff_t... type does not exist
That means Pike gets confused. Try adding this to global.h (before the last #endif):
#ifndef PRINTPTRDIFFT #define PTRINTPTRDIFFT "" #endif
/ Mirar
Previous text:
2004-01-17 23:05: Subject: Re: PRINTPTRDIFFT on pike 7.5
Le 16 janv. 04, à 21:45, Mirar @ Pike developers forum a écrit :
Looks like it.
The configure test looks like this:
MY_AC_CHECK_PRINTF_INT_TYPE(ptrdiff_t, "t" "" "l" "ll" "L", "", PRINTPTRDIFFT, [%${res}d, %${res}x])
Do you have a ptrdiff_t at all? Maybe Pike is using some replacement type but forgot to default the printing to the correct type...
What does configure say here? checking how to print ptrdiff_t... <?>
It says "yes" :)
And the machine is in pike farm : http://pike.ida.liu.se/generated/pikefarm/7.5/1672_383/makelog.html (all data is here http://pike.ida.liu.se/development/pikefarm/result.xml? id=1672_383&pike=7_5 ).
/Xavier
/ Brevbäraren
It's no special syntax, PRINTPTRDIFFT should be expanded to a string by the preprocessor, and then it's plain ANSI-C string catenation, i.e. "a" "foo" "b" is the same as "afoob".
pike-devel@lists.lysator.liu.se