[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#716736: gcc hppa64



On 16-Jul-13, at 5:27 AM, Matthias Klose wrote:

Am 15.07.2013 03:26, schrieb John David Anglin:
On 12-Jul-13, at 6:52 AM, Matthias Klose wrote:

I'm not aware of any change in -6 which could have caused that.

It appears the change that exposed the bug was the installation of eglibc 2.17-7.

The stdc-predef.h header is now included automatically.  It includes
<bits/predefs.h>.

The hppa64 header search starts from /usr/hppa64-linux-gnu/include which is linked to /usr/include. There isn't multiarch support so the compiler doesn't find
bits/predefs.h in /usr/include/hppa-linux-gnu.

There is no glibc port for hppa64 linux.

I think the problem was introduced by the following change to gcc:

2012-10-23  Joseph Myers  <joseph@codesourcery.com>

       * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
       *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Use
glibc-c.o in c_target_objs and cxx_target_objs. Use t-glibc in
       tmake_file.  Set target_has_targetcm.
(tilegx-*-linux*, tilepro-*-linux*): Append to c_target_objs and
       cxx_target_objs rather than overriding previous value.
       * config/glibc-c.c, config/t-glibc: New.
       * doc/tm.texi.in (TARGET_C_PREINCLUDE): New @hook.
       * doc/tm.texi: Regenerate.
       * hooks.c (hook_constcharptr_void_null): New.
       * hooks.h (hook_constcharptr_void_null): Declare.

It may be possible to disable this in config.gcc.

maybe. Or ship a symlink /usr/include/hppa64-linux-gnu -> hppa-linux- gnu. The file just needs to be found, nothing else should use it. However I didn't look if the multiarch triplet for hppa64-linux-gnu is set, or correctly set.

Please close this bug. The problem was resolved by a change to my build system
configuration.

/usr/hppa64-linux-gnu/include was a symlink to /usr/include. This together with the configure option --includedir=/usr/hppa64-linux-gnu/include and new predef support caused the build error. Simply changing /usr/hppa64-linux-gnu/ include to
a real directory avoids the problem.

Nothing is actually installed in /usr/hppa64-linux-gnu/include, so it probably doesn't need to exist.

The symbolic link on my system dates back to 2010. I can't remember if it was an experiment
on my part or not.

I'm going to remove adding pa/t-linux to tmake_file in the hppa64 config.gcc hunk in the near future. pa/t-linux defines MULTIARCH_DIRNAME to hppa-linux-gnu. Aside from probably being wrong, I don't think the hppa64 compiler needs to be multiarch at this time.

The symlink /usr/include/hppa64-linux-gnu -> hppa-linux-gnu didn't help.

Thanks,
Dave
--
John David Anglin	dave.anglin@bell.net


Reply to: