Opened 5 years ago

Closed 4 years ago

#13045 closed Bugs (duplicate)

"uintptr_t is not defined" on Linux when using the Oracle's compiler

Reported by: maxim.kartashev@… Owned by: John Maddock
Milestone: To Be Determined Component: config
Version: Boost 1.63.0 Severity: Problem
Keywords: Cc:

Description

An attempt to build with

$ b2 stdlib=sun-stlport

on Oracle Linux using the Oracle's compiler fails like so

    "CC" -library=stlport4 -std=sun03 -xO4 -mt -erroff=%none -m64 -KPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I"." -I"libs/math/src/tr1" -c -o "bin.v2/libs/math/build/sun/release/stdlib-sun-stlport/threading-multi/assoc_legendre.o" "libs/math/build/../src/tr1/assoc_legendre.cpp"

...failed sun.compile.c++ bin.v2/libs/math/build/sun/release/stdlib-sun-stlport/threading-multi/assoc_legendre.o...
sun.compile.c++ bin.v2/libs/math/build/sun/release/stdlib-sun-stlport/threading-multi/beta.o
"./boost/cstdint.hpp", line 381: Error: uintptr_t is not defined.
"./boost/atomic/detail/atomic_template.hpp", line 670: Error: uintptr_t is not defined.
2 Error(s) detected.

Reproducible on Oracle Linux 6 and 7, works fine on Solaris 11.3.

The problem is that the header holding the definition of uintptr_t does not get included directly. On other platforms, uintptr_t gets pulled in accidentally through some other includes.

The fix is to define BOOST_HAS_STDINT_H in Oracle's compiler config.

Change History (3)

comment:2 by maxim.kartashev@…, 5 years ago

comment:3 by John Maddock, 4 years ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.