Re: [PATCH 5/9] build: reject C++ compilers that don't support std::vector::data

Hans Ã…berg <[email protected]> Thu, 19 Aug 2021 10:23:53 +0200
Newsgroups gmane.comp.parsers.bison.patches
Message-ID <[email protected]>
> On 19 Aug 2021, at 08:10, Akim Demaille <[email protected]> =
wrote:
>=20
>> Le 17 ao=C3=BBt 2021 =C3=A0 15:46, Hans =C3=85berg =
<[email protected]> a =C3=A9crit :
>>=20
>>> On 17 Aug 2021, at 08:49, Akim Demaille <[email protected]> =
wrote:
>>>=20
>>> You need to read my answer, and the page it pointed you to.
>>=20
>> I checked it out on the C++ Std-Discussion list, and there is =
normative standard specifying std::vector::data before C++11. The =
absence in GCC 4.2 may have to do with the MacOS version, as an earlier =
GCC version has it.
>=20
> Yes, as shown in the logs it used GCC 4.0's headers.
>=20
> That being said, glr2.cc actually requires C++11, so I have reverted =
these changes, since none of the other C++ skeletons need vector::data, =
and this check was not enough for glr2.cc.

One situation where it might have of importance would have been =
LilyPond, which did not compile with clang due to it differing from gcc =
on some template interpretation, and further, they cross compiled the =
MacOS binaries using a ported SDK which only had gcc 4.2. However, =
LilyPond now compiles with clang, and the SDK license has changed so =
that it is no longer legal to cross compile on other platforms.