Hi Gabe,

I think the follow "just works" by downloading the image from dockerhub.

> docker run -v `pwd`:`pwd` -it powerjg/gem5-gcc-6-build /bin/bash

Or, to just download the image:

> docker pull powerjg/gem5-gcc-6-build

Let me know if that doesn't work for you.

I searched around some to try to track down the issue. It seems that GCC
doesn't love doing LTO and partial linking. There have been a number of
bugs related to this in the past. But, all of the bugs that I found had
been fixed before gcc 5.

Cheers,
Jason

On Sun, Jun 4, 2017 at 4:37 PM Gabe Black <[email protected]> wrote:

> I was hoping we could leave the lto in the .cc->.o but take it out of the
> partial links, and that that would fix the problem. If you have a docker
> image I can try this all out on, that would be helpful. If I can get ahold
> of that somehow, I can try to figure out how to fix this on Monday. I'd
> speculate what's happening is that little inline functions, etc., which I
> think are called "common" symbols are showing up more than once. Normally
> that's ok and the linker will figure that out and get rid of the extra
> copies, but apparently here it isn't doing that. There's a scons variable
> which you can use to disable lto in the fast build if you want a workaround
> for right now, although using gem5.fast is a bit dangerous in the first
> place since I think it disables asserts, etc.
>
> Gabe
>
> On Sun, Jun 4, 2017 at 2:11 PM, Jason Lowe-Power <[email protected]>
> wrote:
>
>> I tried passing -no-lto with  ['-r', '-nostdlib'] on line SConstruct:688.
>> However, that caused the error/warning:
>> "/usr/bin/ld: build/X86/dev/io_device.fo: plugin needed to handle lto
>> object" for every lib.fo.partial. I guess the -lto option during .cc->.o
>> puts some data in the .o. Then, when partially linking with -r gcc gets
>> confused?
>>
>> Should I filter out the -lto=8 from all of the .cc->.o? I could have
>> mis-understood how to do this.
>>
>> Jason
>>
>> On Sun, Jun 4, 2017 at 4:08 PM Gabe Black <[email protected]> wrote:
>>
>>> Did you try filtering out the lto option from the partial link steps
>>> like I suggested? Look at how I do that for -shared as an example.
>>>
>>> Gabe
>>>
>>> On May 24, 2017 2:00 PM, "Jason Lowe-Power" <[email protected]> wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> So I've been able to reproduce the problem. I would bet it's due to the
>>>> new partial linking code (
>>>> https://gem5.googlesource.com/public/gem5/+/6bdd897f04f4efdf90d0761c6d31d3f960f4eacf).
>>>> I'm not sure what the solution is, yet, or if I'll have time to look at it
>>>> in the next few day. Gabe might have an idea, though, if that is the
>>>> problem.
>>>>
>>>> Here's a matrix of what compilers are working and which aren't (gcc-4.8
>>>> is working, too, though not tested on travis).
>>>> https://travis-ci.org/powerjg/gem5-ci-test/builds/235779432
>>>>
>>>> Jason
>>>>
>>>> On Tue, May 23, 2017 at 4:33 PM Moussa, Ayman <
>>>> [email protected]> wrote:
>>>>
>>>>> How can I check which compiler scons uses? These are the compilers on
>>>>> my system
>>>>>
>>>>>
>>>>> gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
>>>>> g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
>>>>> Linux 4.4.0-75-generic #96-Ubuntu SMP
>>>>>
>>>>> ------------------------------
>>>>> *From:* gem5-users <[email protected]> on behalf of Jason
>>>>> Lowe-Power <[email protected]>
>>>>> *Sent:* 23 May 2017 22:27:34
>>>>>
>>>>> *To:* gem5 users mailing list
>>>>> *Subject:* Re: [gem5-users] Link error building gem5.fast
>>>>>
>>>>> I just tried again and still cannot reproduce the error. What compiler
>>>>> are you using?
>>>>>
>>>>> Jason
>>>>>
>>>>> On Tue, May 23, 2017 at 3:41 PM Moussa, Ayman <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hey
>>>>>>
>>>>>>
>>>>>> I've encountered this exact problem with x86 and it only seems to be
>>>>>> for gem5.fast (gem5.opt works fine). I still have problems with a clean
>>>>>> build as Jason suggested so I reverted back to some random commit on the
>>>>>> gem5 repository and it works but it's not what I was looking for though.
>>>>>> Hope this gets fixed soon.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>> *From:* gem5-users <[email protected]> on behalf of Alec
>>>>>> Roelke <[email protected]>
>>>>>> *Sent:* 23 May 2017 21:14:10
>>>>>> *To:* gem5 users mailing list
>>>>>> *Subject:* [gem5-users] Link error building gem5.fast
>>>>>>
>>>>>> Hi Everyone,
>>>>>>
>>>>>> When I try to build gem5.fast using any ISA, I get a lot of multiple
>>>>>> definition errors during the final linking stage.  For example, with x86:
>>>>>>
>>>>>>  [    LINK]  -> X86/gem5.fast.unstripped
>>>>>> build/X86/arch/x86/bios/lib.fo.partial: In function
>>>>>> `Drainable::drainResume()':
>>>>>> (.text+0x5b00): multiple definition of `Drainable::drainResume()'
>>>>>> build/X86/dev/x86/lib.fo.partial:(.text+0x0): first defined here
>>>>>>
>>>>>> There are way too many of these to list them all, but they're all
>>>>>> multiple definitions of symbols.  Has anyone else encountered this?
>>>>>>
>>>>>> Thanks,
>>>>>> Alec Roelke
>>>>>> _______________________________________________
>>>>>> gem5-users mailing list
>>>>>> [email protected]
>>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>> _______________________________________________
>>>>> gem5-users mailing list
>>>>> [email protected]
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>>
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to