r257005 - [WebAssembly] Enable -ffunction-sections and -fdata-sections by default.

JF Bastien via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 7 08:46:57 PST 2016


It looks like that's just wasmate. I'll accelerate its deletion.

On Wed, Jan 6, 2016 at 6:41 PM, JF Bastien <jfb at chromium.org> wrote:

> Hi Dan,
>
> I think this change (or one of the surrounding ones) broken compiling C
> code with WebAssembly.
>
> Errors look like:  error at line 3: unknown section: .text.foobar
>
> See:
> https://build.chromium.org/p/client.wasm.llvm/builders/linux/builds/1507/steps/Link%20LLVM%20Torture%20with%20wasmate/logs/stdio
>
> Could you look into it?
>
> Thanks,
>
> JF
>
> On Wed, Jan 6, 2016 at 4:50 PM, Dan Gohman via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
>> Author: djg
>> Date: Wed Jan  6 18:50:27 2016
>> New Revision: 257005
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=257005&view=rev
>> Log:
>> [WebAssembly] Enable -ffunction-sections and -fdata-sections by default.
>>
>> These remain user-overridable with -fno-function-sections and
>> -fno-data-sections.
>>
>> Modified:
>>     cfe/trunk/lib/Driver/Tools.cpp
>>     cfe/trunk/test/Driver/wasm-toolchain.c
>>
>> Modified: cfe/trunk/lib/Driver/Tools.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=257005&r1=257004&r2=257005&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Driver/Tools.cpp (original)
>> +++ cfe/trunk/lib/Driver/Tools.cpp Wed Jan  6 18:50:27 2016
>> @@ -4176,8 +4176,11 @@ void Clang::ConstructJob(Compilation &C,
>>      CmdArgs.push_back("-generate-type-units");
>>    }
>>
>> -  // CloudABI uses -ffunction-sections and -fdata-sections by default.
>> -  bool UseSeparateSections = Triple.getOS() == llvm::Triple::CloudABI;
>> +  // CloudABI and WebAssembly use -ffunction-sections and
>> -fdata-sections by
>> +  // default.
>> +  bool UseSeparateSections = Triple.getOS() == llvm::Triple::CloudABI ||
>> +                             Triple.getArch() == llvm::Triple::wasm32 ||
>> +                             Triple.getArch() == llvm::Triple::wasm64;
>>
>>    if (Args.hasFlag(options::OPT_ffunction_sections,
>>                     options::OPT_fno_function_sections,
>> UseSeparateSections)) {
>> @@ -6536,7 +6539,9 @@ void wasm::Linker::ConstructJob(Compilat
>>    CmdArgs.push_back("ld");
>>
>>    // Enable garbage collection of unused input sections by default,
>> since code
>> -  // size is of particular importance.
>> +  // size is of particular importance. This is significantly facilitated
>> by
>> +  // the enabling of -ffunction-sections and -fdata-sections in
>> +  // Clang::ConstructJob.
>>    if (areOptimizationsEnabled(Args))
>>      CmdArgs.push_back("--gc-sections");
>>
>>
>> Modified: cfe/trunk/test/Driver/wasm-toolchain.c
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/wasm-toolchain.c?rev=257005&r1=257004&r2=257005&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/Driver/wasm-toolchain.c (original)
>> +++ cfe/trunk/test/Driver/wasm-toolchain.c Wed Jan  6 18:50:27 2016
>> @@ -1,7 +1,19 @@
>>  // A basic clang -cc1 command-line.
>>
>>  // RUN: %clang %s -### -target wasm32-unknown-unknown 2>&1 | FileCheck
>> -check-prefix=CC1 %s
>> -// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}}
>> +// CC1: clang{{.*}} "-cc1" "-triple" "wasm32-unknown-unknown" {{.*}}
>> "-ffunction-sections" "-fdata-sections"
>> +
>> +// Ditto, but ensure that a user -fno-function-sections disables the
>> +// default -ffunction-sections.
>> +
>> +// RUN: %clang %s -### -target wasm32-unknown-unknown
>> -fno-function-sections 2>&1 | FileCheck -check-prefix=NO_FUNCTION_SECTIONS
>> %s
>> +// NO_FUNCTION_SECTIONS-NOT: function-sections
>> +
>> +// Ditto, but ensure that a user -fno-data-sections disables the
>> +// default -fdata-sections.
>> +
>> +// RUN: %clang %s -### -target wasm32-unknown-unknown -fno-data-sections
>> 2>&1 | FileCheck -check-prefix=NO_DATA_SECTIONS %s
>> +// NO_DATA_SECTIONS-NOT: data-sections
>>
>>  // A basic C link command-line.
>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160107/d6d1a27c/attachment.html>


More information about the cfe-commits mailing list