Bug#776965: llvm-toolchain-3.6: FTBFS on hurd-i386

Svante Signell svante.signell at gmail.com
Tue Feb 3 16:37:01 UTC 2015


Source: llvm-toolchain-3.6
Version: 1:3.6~+rc2-1
Severity: important
Tags: patch
User: debian-hurd at lists.debian.org
Usertags: hurd

Hello,

Currently llvmtoolchain-3.6 (~+rc1-1 and ~+rc2-1) fails to build from
source due to usage of a reserved identifier in C/C++11/POSIX.1, see
e.g.:

http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier
Other restrictions might apply. For example, the POSIX standard reserves
a lot of identifiers that are likely to show up in normal code:
*Names beginning with a capital 'E' followed a digit or uppercase letter
  *may be used for additional error code names.

http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html
Some additional classes of identifier names are reserved for future
extensions to the C language or the POSIX.1 environment. While using
these names for your own purposes right now might not cause a problem,
they do raise the possibility of conflict with future versions of the C
or POSIX standards, so you should avoid these names.
...
Names beginning with a capital ‘E’ followed a digit or uppercase letter
may be used for additional error code names. See Error Reporting.

http://docs.oracle.com/cd/E19205-01/819-5265/bjaky/index.html
Sun Studio 12: C User's Guide
6.8.3 Names Reserved for Expansion
In addition to all the names explicitly reserved, the 1990 ISO/IEC C
standard also reserves (for implementations and future standards) names
matching certain patterns:
Table 6–3 Names Reserved for Expansion
errno.h E[0-9A-Z].*

ISO/IEC 9899:TC3 Committee Draft — September 7, 2007 WG14/N1256
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
page 166: 7.1.3 Reseved Identifiers

The attached patch hurd.diff fixes that by renaming EIOIO to E_IOIO. 
The already included patch: hurd-EIEIO-undef.diff is non-functional and
should be removed. Since this is a standard violation, this patch should
be submitted upstream.

Test summary from the build is:
  Expected Passes    : 7892
  Expected Failures  : 14
  Unsupported Tests  : 23
  Unexpected Failures: 16

Additionally the patch debian_rules.diff adds an option to help2man:
--no-discard-stderr to get output even if --help is written to stderr.
This changes is made unconditionally, but could be modified of course if
it causes problems for other architectures.

Thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hurd.diff
Type: text/x-patch
Size: 672 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-llvm-team/attachments/20150203/a940bf75/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rules.diff
Type: text/x-patch
Size: 837 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-llvm-team/attachments/20150203/a940bf75/attachment-0001.bin>


More information about the Pkg-llvm-team mailing list