> On Jul 13, 2018, at 3:12 PM, U.Mutlu <u...@mutluit.com> wrote:
>
> Paul Koning wrote on 07/13/2018 08:56 PM:
>>
>>
>>> On Jul 13, 2018, at 2:52 PM, U.Mutlu <u...@mutluit.com> wrote:
>>>
>>> Paul Koning wrote on 07/13/2018 08:27 PM:
>>>> I'm trying to see if I can build the pdp11 target for languages other than
>>>> just C, and the answer is for the most part yes. But I' running into an
>>>> ICE I can't figure out. It's way before the back end comes into the
>>>> picture as far as I can see, and there's nothing particularly strange
>>>> looking in the input file that suggests anything.
>>>>
>>>> Any suggestions on where to look? The failure is:
>>>>
>>>> libtool: compile: /Users/pkoning/Documents/svn/buildpdp+/./gcc/xgcc
>>>> -shared-libgcc -B/Users/pkoning/Documents/svn/buildpdp+/./gcc -nostdinc++
>>>> -L/Users/pkoning/Documents/svn/buildpdp+/pdp11-aout/libstdc++-v3/src
>>>> -L/Users/pkoning/Documents/svn/buildpdp+/pdp11-aout/libstdc++-v3/src/.libs
>>>> -L/Users/pkoning/Documents/svn/buildpdp+/pdp11-aout/libstdc++-v3/libsupc++/.libs
>>>> -B/usr/local/pdp11-aout/pdp11-aout/bin/
>>>> -B/usr/local/pdp11-aout/pdp11-aout/lib/ -isystem
>>>> /usr/local/pdp11-aout/pdp11-aout/include -isystem
>>>> /usr/local/pdp11-aout/pdp11-aout/sys-include
>>>> -I/Users/pkoning/Documents/svn/gcc/libstdc++-v3/../libgcc
>>>> -I/Users/pkoning/Documents/svn/buildpdp+/pdp11-aout/libstdc++-v3/include/pdp11-aout
>>>> -I/Users/pkoning/Documents/svn/buildpdp+/pdp11-aout/libstdc++-v3/include
>>>> -I/Users/pkoning/Documents/svn/gcc/libstdc++-v3/libsupc++
>>>> -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi
>>>> -fdiagnostics-show-location=once -frandom-seed=new_opa.lo -g -O2
>>>> -std=gnu++1z -c ../../../../gcc/l
> ib
>>> stdc++-v3/libsupc++/new_opa.cc -o new_opa.o
>>>> cc1plus: warning: -Wabi won't warn about anything [-Wabi]
>>>> cc1plus: note: -Wabi warns about differences from the most up-to-date ABI,
>>>> which is also used by default
>>>> cc1plus: note: use e.g. -Wabi=11 to warn about changes from GCC 7
>>>> ../../../../gcc/libstdc++-v3/libsupc++/new_opa.cc:112:1: internal compiler
>>>> error: in import_export_decl, at cp/decl2.c:2877
>>>> }
>>>> ^
>>>> libbacktrace could not find executable to open
>>>> Please submit a full bug report,
>>>> with preprocessed source if appropriate.
>>>> See <https://gcc.gnu.org/bugs/> for instructions.
>>>> make[3]: *** [new_opa.lo] Error 1
>>>
>>>
>>> It's failing at the last gcc_assert() below (file
>>> ../gcc_src/gcc/cp/decl2.c:2877 ):
>>
>> Sorry, I should have been more explicit. I saw that, but my question is:
>> what is the underlying problem that triggers the assert? The comment is not
>> much help to me. And more specifically: what could a target be doing wrong
>> that would make an early stage of the compiler fail like this on what seems
>> like a pretty straightforward source file?
>>
>> Many of the other libstdc++ bits compile just fine, as do plenty of
>> testsuite cases and some test files of my own.
>>
>
> /* In a VAR_DECL, FUNCTION_DECL, NAMESPACE_DECL or TYPE_DECL,
> nonzero means name is to be accessible from outside this translation unit.
> In an IDENTIFIER_NODE, nonzero means an external declaration
> accessible from outside this translation unit was previously seen
> for this name in an inner scope. */
> #define TREE_PUBLIC(NODE) ((NODE)->base.public_flag)
>
>
> Ie. it has todo with the value of the member var public_flag of the tree decl.
I'm still on the same question as before. Why do I get an ICE in the tree
phase of the compiler, complaining about flags of a declaration, based on
something I apparently have wrong in my target description? I can build C++
for other targets, so this isn't a general bug. But I'm not used to target
(back end) stuff affecting the compiler before I even get to the RTL part. And
in this case, looking at the failing code gives me no clue at all. I can't do
anything with the "tree" object to find out what it describes; it's a VAR_DECL
but I don't know what to look at. I tried turning on tree dump files, those
gave no clue either. And there is nothing in the manuals.
paul