On 28-Feb-2016 7:27 AM, Bram Moolenaar wrote:
Patch 7.4.1440 (after 7.4.1437)
Problem: Can't build on Windows.
Solution: Change #ifdefs. Only define isnan when used.
Files: src/macros.h, src/eval.c, src/json.c
I get this build failure on HP-UX after this patch:
cc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -o objects/eval.o eval.c
cc: "macros.h", line 338: error 1000: Unexpected symbol: "sizeof".
cc: "macros.h", line 338: error 1000: Unexpected symbol: "==".
cc: "macros.h", line 338: error 1000: Unexpected symbol: "?".
cc: "macros.h", line 338: error 1000: Unexpected symbol: ":".
cc: "macros.h", line 338: error 1505: Function may not return a function or an
array.
cc: "macros.h", line 338: error 1573: Type of "_Isnanf" is undefined due to an
illegal declaration.
cc: "macros.h", line 338: error 1584: Inconsistent type declaration: "_Isnanf".
cc: "macros.h", line 338: error 1711: Inconsistent parameter list declaration for
"_Isnanf".
cc: "macros.h", line 341: error 1000: Unexpected symbol: "sizeof".
cc: "macros.h", line 341: error 1000: Unexpected symbol: "==".
cc: "macros.h", line 341: error 1000: Unexpected symbol: "?".
cc: "macros.h", line 341: error 1000: Unexpected symbol: ":".
cc: "macros.h", line 341: error 1000: Unexpected symbol: "{".
cc: "macros.h", line 341: error 1000: Unexpected symbol: "&&".
cc: "macros.h", line 341: error 1000: Unexpected symbol: "}".
cc: "macros.h", line 341: error 1573: Type of "_Isinf" is undefined due to an
illegal declaration.
cc: "macros.h", line 341: warning 562: Redeclaration of "_Isinff" with a different
storage class specifier: "_Isinff" will have internal linkage.
cc: "macros.h", line 341: error 1711: Inconsistent parameter list declaration for
"_Isinff".
cc: "structs.h", line 255: error 1000: Unexpected symbol: "WV_COUNT".
cc: "structs.h", line 277: error 1000: Unexpected symbol: "winopt_T".
cc: "structs.h", line 277: error 1573: Type of "wi_opt" is undefined due to an
illegal declaration.
cc: "structs.h", line 277: error 1578: Size of struct or union member is
unknown.
cc: "structs.h", line 1774: error 1000: Unexpected symbol: "BV_COUNT".
cc: "globals.h", line 356: error 1000: Unexpected symbol: "HLF_COUNT".
cc: "eval.c", line 307: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 308: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 309: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 310: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 311: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 312: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 313: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 314: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 315: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 316: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 317: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 318: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 319: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 320: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 321: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 322: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 323: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 324: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 325: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 326: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 327: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 328: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 329: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 330: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 331: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 332: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 333: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 334: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 335: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 336: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 337: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 338: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 339: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 340: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 341: error 1000: Unexpected symbol: "VAR_UNKNOWN".
cc: "eval.c", line 342: error 1000: Unexpected symbol: "VAR_UNKNOWN".
cc: "eval.c", line 343: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 344: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 345: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 346: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 347: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 348: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 349: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 350: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 351: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 352: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 353: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 354: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 355: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 356: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 357: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 358: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 359: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 360: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 361: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 362: error 1000: Unexpected symbol: "VAR_LIST".
cc: "eval.c", line 363: error 1000: Unexpected symbol: "VAR_NUMBER".
cc: "eval.c", line 364: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 365: error 1000: Unexpected symbol: "VAR_DICT".
cc: "eval.c", line 366: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 367: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 368: error 1000: Unexpected symbol: "VAR_STRING".
cc: "eval.c", line 369: error 1000: Unexpected symbol: "VAR_LIST".
cc: "eval.c", line 370: error 1000: Unexpected symbol: "VAR_SPECIAL".
cc: "eval.c", line 371: error 1000: Unexpected symbol: "VAR_SPECIAL".
cc: "eval.c", line 372: error 1000: Unexpected symbol: "VAR_SPECIAL".
cc: "eval.c", line 373: error 1000: Unexpected symbol: "VAR_SPECIAL".
cc: "eval.c", line 920: error 1000: Unexpected symbol: "globvars_var".
cc: "eval.c", line 921: error 1000: Unexpected symbol: "vimvars_var".
cc: "eval.c", line 923: error 1000: Unexpected symbol: "compat_hashtab".
cc: "eval.c", line 924: error 1000: Unexpected symbol: "func_hashtab".
cc: "eval.c", line 928: error 1000: Unexpected symbol: "vimvars".
cc: "eval.c", line 938: error 1000: Unexpected symbol: "VAR_UNKNOWN".
cc: "eval.c", line 942: error 1000: Unexpected symbol: "compat_hashtab".
cc: "eval.c", line 944: error 1000: Unexpected symbol: "[".
cc: "eval.c", line 920: error 1555: Address operator requires an lvalue.
cc: "eval.c", line 920: warning 604: Pointers are not assignment-compatible.
cc: "eval.c", line 920: warning 563: Argument #2 is not the correct type.
cc: "eval.c", line 921: error 1555: Address operator requires an lvalue.
cc: Panic 2161: Maximum allowed number of errors exceeded.
*** Error exit code 1
Stop.
*** Error exit code 1
Stop.
*** Error exit code 1
Stop.
It has to do with FEAT_FLOAT and isnan() and isinf() being defined as
macros if _INCLUDE_HPUX_SOURCE is defined in HP-UX's math.h:
<snip>
...
# define isnan(x) _ISNAN(x)
# define isinf(x) _ISINF(x)
...
# define _IS64(x) (sizeof(x)==sizeof(double))
# define _IS32(x) (sizeof(x)==sizeof(float))
...
# define _ISNAN(x)
(_IS32(x)?_Isnanf(x):_IS64(x)?(isnan)(x):_Isnanf80(x))
# define _ISINF(x)
(_IS32(x)?_Isinff(x):_IS64(x)?_Isinf(x):_Isinff80(x))
...
</snip>
Defining HAVE_ISNAN and HAVE_ISINF in src/auto/config.h fixes the
problem which leads me to think that the configure test for these two
functions isn't right somehow.
I'm not sure how to fix it though.
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.