I'm trying to build libunwind 1.2.1 with the PGI compiler, and am seeing
this failure in the config phase:
checking link.h usability... no
checking link.h presence... yes
configure: WARNING: link.h: present but cannot be compiled
configure: WARNING: link.h: check for missing prerequisite headers?
configure: WARNING: link.h: see the Autoconf documentation
configure: WARNING: link.h: section "Present But Cannot Be Compiled"
configure: WARNING: link.h: proceeding with the compiler's result
configure: WARNING: ## ----------------------------------------- ##
configure: WARNING: ## Report this to libunwind-devel@nongnu.org ##
configure: WARNING: ## ----------------------------------------- ##
checking for link.h... no
checking sys/link.h usability... no
checking sys/link.h presence... no
checking for sys/link.h... no
The config.log file shows
configure:16113: checking link.h usability
configure:16113:
/cm/extra/apps/PGI.linux86-64/17.10/linux86-64/17.10/bin/pgc++ -c
-noswitcherror -m64 -tp=px -I/usr/include conftest.c >&5
"/usr/include/bits/link.h", line 97: error: identifier "__int128_t" is
undefined
__int128_t lr_bnd[4];
^
"/usr/include/bits/link.h", line 113: error: identifier "__int128_t" is
undefined
__int128_t lrv_bnd0;
^
"/usr/include/bits/link.h", line 114: error: identifier "__int128_t" is
undefined
__int128_t lrv_bnd1;
^
3 errors detected in the compilation of "conftest.c".
from the source lines
84 typedef struct La_x86_64_regs
85 {
86 uint64_t lr_rdx;
87 uint64_t lr_r8;
88 uint64_t lr_r9;
89 uint64_t lr_rcx;
90 uint64_t lr_rsi;
91 uint64_t lr_rdi;
92 uint64_t lr_rbp;
93 uint64_t lr_rsp;
94 La_x86_64_xmm lr_xmm[8];
95 La_x86_64_vector lr_vector[8];
96 #ifndef __ILP32__
* 97 __int128_t lr_bnd[4];*
98 #endif
99 } La_x86_64_regs;
100
101 /* Return values for calls from PLT on x86-64. */
102 typedef struct La_x86_64_retval
103 {
104 uint64_t lrv_rax;
105 uint64_t lrv_rdx;
106 La_x86_64_xmm lrv_xmm0;
107 La_x86_64_xmm lrv_xmm1;
108 long double lrv_st0;
109 long double lrv_st1;
110 La_x86_64_vector lrv_vector0;
111 La_x86_64_vector lrv_vector1;
112 #ifndef __ILP32__
* 113 __int128_t lrv_bnd0;**
** 114 __int128_t lrv_bnd1;*
115 #endif
116 } La_x86_64_retval;
I'm guessing that the GCC compiler supports 128-bit integers but the PGI
compiler does not.
Do any of you know a way around this?
From reading the documentation, it looks like libunwind had been tested
with a lot of compilers, did they all support 128-bit integers?
Thanks,
Carl
_______________________________________________
Libunwind-devel mailing list
Libunwind-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/libunwind-devel