Re: [PATCH] D58326: [Driver][Gnu] Support -nolibc flag

2019-02-17 Thread Roland McGrath via cfe-commits
See
https://fuchsia.googlesource.com/fuchsia/+/48c987febf4077e52985f1ce1edc957b39bc5481/zircon/public/gn/config/BUILD.gn#219
and
https://fuchsia.googlesource.com/fuchsia/+/48c987febf4077e52985f1ce1edc957b39bc5481/zircon/public/gn/config/libc-dummy
for what happens without it...

On Sat, Feb 16, 2019 at 5:29 PM Eric Christopher  wrote:

> Weird. Ok.
>
> On Sat, Feb 16, 2019, 5:20 PM Petr Hosek via Phabricator <
> revi...@reviews.llvm.org> wrote:
>
>> phosek created this revision.
>> phosek added reviewers: echristo, mcgrathr.
>> Herald added a project: clang.
>> Herald added a subscriber: cfe-commits.
>>
>> This can be used to disable libc linking. This flag is supported by
>> GCC since version 9 as well as some Clang target toolchains.
>>
>>
>> Repository:
>>   rC Clang
>>
>> https://reviews.llvm.org/D58326
>>
>> Files:
>>   clang/lib/Driver/ToolChains/Gnu.cpp
>>   clang/test/Driver/nodefaultlib.c
>>   clang/test/Driver/nolibc.c
>>
>>
>> Index: clang/test/Driver/nolibc.c
>> ===
>> --- /dev/null
>> +++ clang/test/Driver/nolibc.c
>> @@ -0,0 +1,5 @@
>> +// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nolibc %s
>> 2>&1 | FileCheck %s
>> +// CHECK: crtbegin
>> +// CHECK: "-lgcc"
>> +// CHECK-NOT: "-lc"
>> +// CHECK: crtend
>> Index: clang/test/Driver/nodefaultlib.c
>> ===
>> --- clang/test/Driver/nodefaultlib.c
>> +++ clang/test/Driver/nodefaultlib.c
>> @@ -1,4 +1,4 @@
>> -// RUN: %clang -target i686-pc-linux-gnu -### -nodefaultlibs %s 2>&1 |
>> FileCheck -check-prefix=TEST1 %s
>> +// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc
>> -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=TEST1 %s
>>  // TEST1-NOT: start-group
>>  // TEST1-NOT: "-lgcc"
>>  // TEST1-NOT: "-lc"
>> Index: clang/lib/Driver/ToolChains/Gnu.cpp
>> ===
>> --- clang/lib/Driver/ToolChains/Gnu.cpp
>> +++ clang/lib/Driver/ToolChains/Gnu.cpp
>> @@ -518,7 +518,8 @@
>>if (Args.hasArg(options::OPT_fsplit_stack))
>>  CmdArgs.push_back("--wrap=pthread_create");
>>
>> -  CmdArgs.push_back("-lc");
>> +  if (!Args.hasArg(options::OPT_nolibc))
>> +CmdArgs.push_back("-lc");
>>
>>// Add IAMCU specific libs, if needed.
>>if (IsIAMCU)
>>
>>
>>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D58326: [Driver][Gnu] Support -nolibc flag

2019-02-16 Thread Petr Hosek via Phabricator via cfe-commits
This revision was not accepted when it landed; it landed in state "Needs 
Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rL354210: [Driver][Gnu] Support -nolibc flag (authored by 
phosek, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D58326?vs=187151&id=187152#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58326/new/

https://reviews.llvm.org/D58326

Files:
  cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
  cfe/trunk/test/Driver/nodefaultlib.c
  cfe/trunk/test/Driver/nolibc.c


Index: cfe/trunk/test/Driver/nodefaultlib.c
===
--- cfe/trunk/test/Driver/nodefaultlib.c
+++ cfe/trunk/test/Driver/nodefaultlib.c
@@ -1,4 +1,4 @@
-// RUN: %clang -target i686-pc-linux-gnu -### -nodefaultlibs %s 2>&1 | 
FileCheck -check-prefix=TEST1 %s
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nodefaultlibs %s 
2>&1 | FileCheck -check-prefix=TEST1 %s
 // TEST1-NOT: start-group
 // TEST1-NOT: "-lgcc"
 // TEST1-NOT: "-lc"
Index: cfe/trunk/test/Driver/nolibc.c
===
--- cfe/trunk/test/Driver/nolibc.c
+++ cfe/trunk/test/Driver/nolibc.c
@@ -0,0 +1,5 @@
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nolibc %s 2>&1 | 
FileCheck %s
+// CHECK: crtbegin
+// CHECK: "-lgcc"
+// CHECK-NOT: "-lc"
+// CHECK: crtend
Index: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
===
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
@@ -518,7 +518,8 @@
   if (Args.hasArg(options::OPT_fsplit_stack))
 CmdArgs.push_back("--wrap=pthread_create");
 
-  CmdArgs.push_back("-lc");
+  if (!Args.hasArg(options::OPT_nolibc))
+CmdArgs.push_back("-lc");
 
   // Add IAMCU specific libs, if needed.
   if (IsIAMCU)


Index: cfe/trunk/test/Driver/nodefaultlib.c
===
--- cfe/trunk/test/Driver/nodefaultlib.c
+++ cfe/trunk/test/Driver/nodefaultlib.c
@@ -1,4 +1,4 @@
-// RUN: %clang -target i686-pc-linux-gnu -### -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=TEST1 %s
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=TEST1 %s
 // TEST1-NOT: start-group
 // TEST1-NOT: "-lgcc"
 // TEST1-NOT: "-lc"
Index: cfe/trunk/test/Driver/nolibc.c
===
--- cfe/trunk/test/Driver/nolibc.c
+++ cfe/trunk/test/Driver/nolibc.c
@@ -0,0 +1,5 @@
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nolibc %s 2>&1 | FileCheck %s
+// CHECK: crtbegin
+// CHECK: "-lgcc"
+// CHECK-NOT: "-lc"
+// CHECK: crtend
Index: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
===
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
@@ -518,7 +518,8 @@
   if (Args.hasArg(options::OPT_fsplit_stack))
 CmdArgs.push_back("--wrap=pthread_create");
 
-  CmdArgs.push_back("-lc");
+  if (!Args.hasArg(options::OPT_nolibc))
+CmdArgs.push_back("-lc");
 
   // Add IAMCU specific libs, if needed.
   if (IsIAMCU)
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D58326: [Driver][Gnu] Support -nolibc flag

2019-02-16 Thread Eric Christopher via cfe-commits
Weird. Ok.

On Sat, Feb 16, 2019, 5:20 PM Petr Hosek via Phabricator <
revi...@reviews.llvm.org> wrote:

> phosek created this revision.
> phosek added reviewers: echristo, mcgrathr.
> Herald added a project: clang.
> Herald added a subscriber: cfe-commits.
>
> This can be used to disable libc linking. This flag is supported by
> GCC since version 9 as well as some Clang target toolchains.
>
>
> Repository:
>   rC Clang
>
> https://reviews.llvm.org/D58326
>
> Files:
>   clang/lib/Driver/ToolChains/Gnu.cpp
>   clang/test/Driver/nodefaultlib.c
>   clang/test/Driver/nolibc.c
>
>
> Index: clang/test/Driver/nolibc.c
> ===
> --- /dev/null
> +++ clang/test/Driver/nolibc.c
> @@ -0,0 +1,5 @@
> +// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nolibc %s
> 2>&1 | FileCheck %s
> +// CHECK: crtbegin
> +// CHECK: "-lgcc"
> +// CHECK-NOT: "-lc"
> +// CHECK: crtend
> Index: clang/test/Driver/nodefaultlib.c
> ===
> --- clang/test/Driver/nodefaultlib.c
> +++ clang/test/Driver/nodefaultlib.c
> @@ -1,4 +1,4 @@
> -// RUN: %clang -target i686-pc-linux-gnu -### -nodefaultlibs %s 2>&1 |
> FileCheck -check-prefix=TEST1 %s
> +// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc
> -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=TEST1 %s
>  // TEST1-NOT: start-group
>  // TEST1-NOT: "-lgcc"
>  // TEST1-NOT: "-lc"
> Index: clang/lib/Driver/ToolChains/Gnu.cpp
> ===
> --- clang/lib/Driver/ToolChains/Gnu.cpp
> +++ clang/lib/Driver/ToolChains/Gnu.cpp
> @@ -518,7 +518,8 @@
>if (Args.hasArg(options::OPT_fsplit_stack))
>  CmdArgs.push_back("--wrap=pthread_create");
>
> -  CmdArgs.push_back("-lc");
> +  if (!Args.hasArg(options::OPT_nolibc))
> +CmdArgs.push_back("-lc");
>
>// Add IAMCU specific libs, if needed.
>if (IsIAMCU)
>
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D58326: [Driver][Gnu] Support -nolibc flag

2019-02-16 Thread Petr Hosek via Phabricator via cfe-commits
phosek created this revision.
phosek added reviewers: echristo, mcgrathr.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

This can be used to disable libc linking. This flag is supported by
GCC since version 9 as well as some Clang target toolchains.


Repository:
  rC Clang

https://reviews.llvm.org/D58326

Files:
  clang/lib/Driver/ToolChains/Gnu.cpp
  clang/test/Driver/nodefaultlib.c
  clang/test/Driver/nolibc.c


Index: clang/test/Driver/nolibc.c
===
--- /dev/null
+++ clang/test/Driver/nolibc.c
@@ -0,0 +1,5 @@
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nolibc %s 2>&1 | 
FileCheck %s
+// CHECK: crtbegin
+// CHECK: "-lgcc"
+// CHECK-NOT: "-lc"
+// CHECK: crtend
Index: clang/test/Driver/nodefaultlib.c
===
--- clang/test/Driver/nodefaultlib.c
+++ clang/test/Driver/nodefaultlib.c
@@ -1,4 +1,4 @@
-// RUN: %clang -target i686-pc-linux-gnu -### -nodefaultlibs %s 2>&1 | 
FileCheck -check-prefix=TEST1 %s
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nodefaultlibs %s 
2>&1 | FileCheck -check-prefix=TEST1 %s
 // TEST1-NOT: start-group
 // TEST1-NOT: "-lgcc"
 // TEST1-NOT: "-lc"
Index: clang/lib/Driver/ToolChains/Gnu.cpp
===
--- clang/lib/Driver/ToolChains/Gnu.cpp
+++ clang/lib/Driver/ToolChains/Gnu.cpp
@@ -518,7 +518,8 @@
   if (Args.hasArg(options::OPT_fsplit_stack))
 CmdArgs.push_back("--wrap=pthread_create");
 
-  CmdArgs.push_back("-lc");
+  if (!Args.hasArg(options::OPT_nolibc))
+CmdArgs.push_back("-lc");
 
   // Add IAMCU specific libs, if needed.
   if (IsIAMCU)


Index: clang/test/Driver/nolibc.c
===
--- /dev/null
+++ clang/test/Driver/nolibc.c
@@ -0,0 +1,5 @@
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nolibc %s 2>&1 | FileCheck %s
+// CHECK: crtbegin
+// CHECK: "-lgcc"
+// CHECK-NOT: "-lc"
+// CHECK: crtend
Index: clang/test/Driver/nodefaultlib.c
===
--- clang/test/Driver/nodefaultlib.c
+++ clang/test/Driver/nodefaultlib.c
@@ -1,4 +1,4 @@
-// RUN: %clang -target i686-pc-linux-gnu -### -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=TEST1 %s
+// RUN: %clang -target i686-pc-linux-gnu -### -rtlib=libgcc -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=TEST1 %s
 // TEST1-NOT: start-group
 // TEST1-NOT: "-lgcc"
 // TEST1-NOT: "-lc"
Index: clang/lib/Driver/ToolChains/Gnu.cpp
===
--- clang/lib/Driver/ToolChains/Gnu.cpp
+++ clang/lib/Driver/ToolChains/Gnu.cpp
@@ -518,7 +518,8 @@
   if (Args.hasArg(options::OPT_fsplit_stack))
 CmdArgs.push_back("--wrap=pthread_create");
 
-  CmdArgs.push_back("-lc");
+  if (!Args.hasArg(options::OPT_nolibc))
+CmdArgs.push_back("-lc");
 
   // Add IAMCU specific libs, if needed.
   if (IsIAMCU)
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits