Boost logo

Boost-Build :

Subject: Re: [Boost-build] Error message: gcc.link.dll actions too long (max 102400):
From: Schweizer Werner (werner.schweizer_at_[hidden])
Date: 2011-07-07 04:06:40


Hi Jürgen,
thanks for your answer.

Jürgen Hunold wrote:
> Hi Werner,
>
> courtesy copy due to the long delay.
>
> On Friday, 1. July 2011 10:04:46 Schweizer Werner wrote:
>> I'm trying to use Boost.Build to build our existing project based
>> currently on make.
>>
>> In one library, containing many code-generated source files the
>> linking action fails due to the large list of object files.
>
> On Unix? I only encoutered this one on Windows.

SUSE Linux Enterprise Server 10 (x86_64)

gcc version 4.1.0 (SUSE Linux)

I tried to change "#define MAXLINE 102400 /* longest 'together' actions' */" in jam.h to "#define MAXLINE 202400 /* longest 'together' actions' */" and recompiled bjam.
But then the error message came from the os (bjam's message gone). This means: There is an OS limitation on the line length and it is correctly shielded by bjam.

And here you can see: my line length is longer than 102400.
        find bin/gcc-4.1.0/debug/address-model-64/threading-multi -name "*.o" | wc -l
        178435

>
>> In contrast to building with make the linker command line is blown up
>> in Boost.Build by the relative path names to every .o-file.
>>
>> With make we build directly in the directory, where the .o-files are.
>>
>> Is it possible with Boost.Build to also change into the directory
>> with the .o-files and execute the link command there with pure
>> object file names (path-part stripped off)?
>>
>> How can I do this?
>
> That I can't answer and it might be tricky.
>

I tried successfully by shortening the relative path by declaring the features "toolset", "threading", "address-model" and "variant" as incidental.
But this can't be the solution.

>> Or is there an other solution?
>
> Use response files. On gcc they are known as "linker input files".
>
> The attached patch works with gcc-4.6 and maybe all 4.x.
> Developed on windows, but works on Kubuntu 11.04.
> Feedback welcome.
> If this works for other, I can try to get this into Boost.Build.
>

I will see if I can try that.

> Yours,
>
> Jürgen

Cheers
Werner


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk