public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* C++ 20 modules
@ 2020-12-15 15:49 Nathan Sidwell
  2020-12-15 22:33 ` Nathan Sidwell
  0 siblings, 1 reply; 10+ messages in thread
From: Nathan Sidwell @ 2020-12-15 15:49 UTC (permalink / raw)
  To: GCC Patches

I've completed merging modules to trunk modulo the testsuite.  I 
included a few smoke tests, but nothing more.  I'll add the rest when 
the smoke clears.

There will undoubtedly be issues related to configs that I've not built. 
  As I mentioned I did what I could.

Further, it'll undoubtedly break when you go poking at it, as we all 
have unique and special sticks to poke with.  This might disappoint. 
But just think what had to go right to get you there :)  Recently these 
kinds of bugs have been simple to fix -- a thinko or simply forgetting 
about a piece of C++.  Please file issues in bugzilla.

There are some known omissions listed in the documentation (go read it).

Finally, thanks to the early testers, those that supported me in 
implementing such an exciting feature, and those who listened to my 
comments and suggestions in many WG21 meetings.

nathan

-- 
Nathan Sidwell

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-15 15:49 C++ 20 modules Nathan Sidwell
@ 2020-12-15 22:33 ` Nathan Sidwell
  2020-12-15 22:42   ` Rainer Orth
  2020-12-16 21:52   ` Nathan Sidwell
  0 siblings, 2 replies; 10+ messages in thread
From: Nathan Sidwell @ 2020-12-15 22:33 UTC (permalink / raw)
  To: GCC Patches

as expected there are a bunch of configurey type errors.  I am aware of 
the following:

windows build (pr 98300), insufficient #ifing.  A patch is being tested

solaris 11, sys/socket.h, bcopy and poisoning.  Asked jwakely to try a 
patch, he seems to have a build set up.

AIX install.  Testing a patch

gcc_update not touching files: fixed

libcody uses too-new options: fixed, hopefully

libcody unused variable: fixed by Marek, thanks!

nathan

-- 
Nathan Sidwell

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-15 22:33 ` Nathan Sidwell
@ 2020-12-15 22:42   ` Rainer Orth
  2020-12-16 21:52   ` Nathan Sidwell
  1 sibling, 0 replies; 10+ messages in thread
From: Rainer Orth @ 2020-12-15 22:42 UTC (permalink / raw)
  To: Nathan Sidwell; +Cc: GCC Patches

Hi Nathan,

> as expected there are a bunch of configurey type errors.  I am aware of the
> following:
[...]
> solaris 11, sys/socket.h, bcopy and poisoning.  Asked jwakely to try a
> patch, he seems to have a build set up.

two more Solaris issues (will file proper PRs tomorrow):

* Solaris 11.4 <sys/uio.h> uses bzero in an unused macro, also poisoned

* Solaris 11.3 requires -lsocket -lnsl for socket functions, cc1plus
  fails to link.  11.4 is fine, folded those into libc.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-15 22:33 ` Nathan Sidwell
  2020-12-15 22:42   ` Rainer Orth
@ 2020-12-16 21:52   ` Nathan Sidwell
  2020-12-17 21:37     ` Nathan Sidwell
  1 sibling, 1 reply; 10+ messages in thread
From: Nathan Sidwell @ 2020-12-16 21:52 UTC (permalink / raw)
  To: GCC Patches

Several issues have been fixed today:
* Solaris headers 98315 (hopefully finally)
* install-strip  98328
* clang offsetof 98323 (I typoed the PR in the commit)
* libcody enable-checking 98311 (thanks Jakub for the followup)
* source_location etc fix from Jonathan
* More dashisms
* detailed-mem-stat init issue

I'm aware of the following:
* 98324  bootstrap with lto/PIE.  I can reproduce this, investigating
* 98300  windows build, reporter has indicated patch gets further
* 98316  solaris socket lib, Rainer is developing a patch

On 12/15/20 5:33 PM, Nathan Sidwell wrote:
> as expected there are a bunch of configurey type errors.  I am aware of 
> the following:
> 
> windows build (pr 98300), insufficient #ifing.  A patch is being tested
> 
> solaris 11, sys/socket.h, bcopy and poisoning.  Asked jwakely to try a 
> patch, he seems to have a build set up.
> 
> AIX install.  Testing a patch
> 
> gcc_update not touching files: fixed
> 
> libcody uses too-new options: fixed, hopefully
> 
> libcody unused variable: fixed by Marek, thanks!
> 
> nathan
> 


-- 
Nathan Sidwell

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-16 21:52   ` Nathan Sidwell
@ 2020-12-17 21:37     ` Nathan Sidwell
  2020-12-20 23:57       ` Gerald Pfeifer
  0 siblings, 1 reply; 10+ messages in thread
From: Nathan Sidwell @ 2020-12-17 21:37 UTC (permalink / raw)
  To: GCC Patches

As yesterday, several issues fixed:
* 98315 Rainer confirmed fixed
* 98300 Reported noted progress, first patch committed
* An m68k 'nop' issue fixed
* 98340 Another clang issue, fixed
* 98324 One PIC issue fixed.

* 98316 solaris libs, Rainer posted patch, which LGTM
* 98324 bootstrap with lto/PIE, still working on it.
* 98300 follow on patch pushed, waiting

On 12/16/20 4:52 PM, Nathan Sidwell wrote:
> Several issues have been fixed today:
> * Solaris headers 98315 (hopefully finally)
> * install-strip  98328
> * clang offsetof 98323 (I typoed the PR in the commit)
> * libcody enable-checking 98311 (thanks Jakub for the followup)
> * source_location etc fix from Jonathan
> * More dashisms
> * detailed-mem-stat init issue
> 
> I'm aware of the following:
> * 98324  bootstrap with lto/PIE.  I can reproduce this, investigating
> * 98300  windows build, reporter has indicated patch gets further
> * 98316  solaris socket lib, Rainer is developing a patch
> 
> On 12/15/20 5:33 PM, Nathan Sidwell wrote:
>> as expected there are a bunch of configurey type errors.  I am aware 
>> of the following:
>>
>> windows build (pr 98300), insufficient #ifing.  A patch is being tested
>>
>> solaris 11, sys/socket.h, bcopy and poisoning.  Asked jwakely to try a 
>> patch, he seems to have a build set up.
>>
>> AIX install.  Testing a patch
>>
>> gcc_update not touching files: fixed
>>
>> libcody uses too-new options: fixed, hopefully
>>
>> libcody unused variable: fixed by Marek, thanks!
>>
>> nathan
>>
> 
> 


-- 
Nathan Sidwell

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-17 21:37     ` Nathan Sidwell
@ 2020-12-20 23:57       ` Gerald Pfeifer
  2020-12-21 13:55         ` Nathan Sidwell
  0 siblings, 1 reply; 10+ messages in thread
From: Gerald Pfeifer @ 2020-12-20 23:57 UTC (permalink / raw)
  To: Nathan Sidwell; +Cc: GCC Patches

On Thu, 17 Dec 2020, Nathan Sidwell wrote:
> As yesterday, several issues fixed:

Here is a new one, *-unknown-freebsd11.4; with my previous patch
applied, libcody builds and we now fail in gcc/cp:

c++ -std=c++11 -fno-PIE -c -DIN_GCC_FRONTEND -g -DIN_GCC 
-fno-strict-aliasing -fno-exceptions -fno-rtti 
-fasynchronous-unwind-tables -W -Wall -Wno-narrow ing -Wwrite-strings 
-Wcast-qual -Wno-error=format-diag -Wno-format -Wmissing-fo rmat-attribute 
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macr os 
-Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -Icp 
-I/scratch/tmp /gerald/GCC-HEAD/gcc -I/scratch/tmp/gerald/GCC-HEAD/gcc/cp 
-I/scratch/tmp/geral d/GCC-HEAD/gcc/../include -I./../intl 
-I/scratch/tmp/gerald/GCC-HEAD/gcc/../lib cpp/include 
-I/scratch/tmp/gerald/GCC-HEAD/gcc/../libcody -I/home/gerald/11-i38 
6/include -I/scratch/tmp/gerald/GCC-HEAD/gcc/../libdecnumber 
-I/scratch/tmp/ge rald/GCC-HEAD/gcc/../libdecnumber/dpd -I../libdecnumber 
-I/scratch/tmp/gerald/G CC-HEAD/gcc/../libbacktrace -o cp/mapper-client.o 
-MT cp/mapper-client.o -MMD -MP -MF cp/.deps/mapper-client.TPo 
/scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.cc
In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.cc:31:
In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.h:26:
In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/../libcody/cody.hh:24:
In file included from /usr/include/c++/v1/memory:653:
/usr/include/c++/v1/typeinfo:346:5: error: no member named 'fancy_abort' in namespace 'std::__1'; did you mean simply 'fancy_abort'?
    _VSTD::abort();
    ^~~~~~~
/usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^

Compiler is clang version 10.0.1.

Gerald

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-20 23:57       ` Gerald Pfeifer
@ 2020-12-21 13:55         ` Nathan Sidwell
  2020-12-21 17:38           ` Gerald Pfeifer
  0 siblings, 1 reply; 10+ messages in thread
From: Nathan Sidwell @ 2020-12-21 13:55 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: GCC Patches

[-- Attachment #1: Type: text/plain, Size: 898 bytes --]

On 12/20/20 6:57 PM, Gerald Pfeifer wrote:
> On Thu, 17 Dec 2020, Nathan Sidwell wrote:
>> As yesterday, several issues fixed:
> 
> Here is a new one, *-unknown-freebsd11.4; with my previous patch

> /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.cc
> In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.cc:31:
> In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.h:26:
> In file included from /scratch/tmp/gerald/GCC-HEAD/gcc/../libcody/cody.hh:24:
> In file included from /usr/include/c++/v1/memory:653:
> /usr/include/c++/v1/typeinfo:346:5: error: no member named 'fancy_abort' in namespace 'std::__1'; did you mean simply 'fancy_abort'?
>      _VSTD::abort();
>      ^~~~~~~
> /usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD'
> #define _VSTD std::_LIBCPP_ABI_NAMESPACE
>                ^

Care to try this?


-- 
Nathan Sidwell

[-- Attachment #2: gerald.diff --]
[-- Type: text/x-patch, Size: 809 bytes --]

diff --git i/gcc/cp/mapper-client.cc w/gcc/cp/mapper-client.cc
index 2ad770b3d78..40e9283a794 100644
--- i/gcc/cp/mapper-client.cc
+++ w/gcc/cp/mapper-client.cc
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3.  If not see
 // will include it later under the above check
 #include <sys/socket.h>
 #endif
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #include "system.h"
 
 #include "line-map.h"
diff --git i/gcc/cp/mapper-resolver.cc w/gcc/cp/mapper-resolver.cc
index 53c482441b4..e348757d99c 100644
--- i/gcc/cp/mapper-resolver.cc
+++ w/gcc/cp/mapper-resolver.cc
@@ -21,6 +21,8 @@ along with GCC; see the file COPYING3.  If not see
 /* Forward to the resolver in c++tools.  */
 
 #include "config.h"
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #define INCLUDE_ALGORITHM
 #include "system.h"
 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-21 13:55         ` Nathan Sidwell
@ 2020-12-21 17:38           ` Gerald Pfeifer
  2020-12-21 17:45             ` Nathan Sidwell
  0 siblings, 1 reply; 10+ messages in thread
From: Gerald Pfeifer @ 2020-12-21 17:38 UTC (permalink / raw)
  To: Nathan Sidwell; +Cc: GCC Patches

[-- Attachment #1: Type: text/plain, Size: 999 bytes --]

O Mon, 21 Dec 2020, Nathan Sidwell wrote:
>> /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.cc:31:
>> In file included from
>> /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.h:26:
>> In file included from
>> /scratch/tmp/gerald/GCC-HEAD/gcc/../libcody/cody.hh:24:
>> In file included from /usr/include/c++/v1/memory:653:
>> /usr/include/c++/v1/typeinfo:346:5: error: no member named 'fancy_abort'
>> in namespace 'std::__1'; did you mean simply 'fancy_abort'?
>>      _VSTD::abort();
>>      ^~~~~~~
>> /usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD'
>> #define _VSTD std::_LIBCPP_ABI_NAMESPACE
> Care to try this?

Thank you, Nathan!

This made a difference, though it appears a similar change is needed 
for gcc/cp/module.cc as well, which also includes mapper-client.h. 

Please find an extended patch attached.

(Bootstrap is still running, but has progressed farther than 
without your patch or your original patch alone, and already 
is in libstdc++ now.)

Gerald

[-- Attachment #2: Type: text/plain, Size: 1231 bytes --]

diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
index 2ad770b3d78..40e9283a794 100644
--- a/gcc/cp/mapper-client.cc
+++ b/gcc/cp/mapper-client.cc
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3.  If not see
 // will include it later under the above check
 #include <sys/socket.h>
 #endif
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #include "system.h"
 
 #include "line-map.h"
diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
index 53c482441b4..e348757d99c 100644
--- a/gcc/cp/mapper-resolver.cc
+++ b/gcc/cp/mapper-resolver.cc
@@ -21,6 +21,8 @@ along with GCC; see the file COPYING3.  If not see
 /* Forward to the resolver in c++tools.  */
 
 #include "config.h"
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #define INCLUDE_ALGORITHM
 #include "system.h"
 
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index fc918d296a2..7db312d3c44 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -207,6 +207,8 @@ Classes used:
 
 #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
 #include "config.h"
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #include "system.h"
 #include "coretypes.h"
 #include "cp-tree.h"

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-21 17:38           ` Gerald Pfeifer
@ 2020-12-21 17:45             ` Nathan Sidwell
  2020-12-22 22:48               ` Gerald Pfeifer
  0 siblings, 1 reply; 10+ messages in thread
From: Nathan Sidwell @ 2020-12-21 17:45 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: GCC Patches

On 12/21/20 12:38 PM, Gerald Pfeifer wrote:
> O Mon, 21 Dec 2020, Nathan Sidwell wrote:
>>> /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.cc:31:
>>> In file included from
>>> /scratch/tmp/gerald/GCC-HEAD/gcc/cp/mapper-client.h:26:
>>> In file included from
>>> /scratch/tmp/gerald/GCC-HEAD/gcc/../libcody/cody.hh:24:
>>> In file included from /usr/include/c++/v1/memory:653:
>>> /usr/include/c++/v1/typeinfo:346:5: error: no member named 'fancy_abort'
>>> in namespace 'std::__1'; did you mean simply 'fancy_abort'?
>>>       _VSTD::abort();
>>>       ^~~~~~~
>>> /usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD'
>>> #define _VSTD std::_LIBCPP_ABI_NAMESPACE
>> Care to try this?
> 
> Thank you, Nathan!
> 
> This made a difference, though it appears a similar change is needed
> for gcc/cp/module.cc as well, which also includes mapper-client.h.
> 
> Please find an extended patch attached.
> 
> (Bootstrap is still running, but has progressed farther than
> without your patch or your original patch alone, and already
> is in libstdc++ now.)

Yes, this is good.  I already managed to commit some of this with the 
98412 patch.

nathan


-- 
Nathan Sidwell

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: C++ 20 modules
  2020-12-21 17:45             ` Nathan Sidwell
@ 2020-12-22 22:48               ` Gerald Pfeifer
  0 siblings, 0 replies; 10+ messages in thread
From: Gerald Pfeifer @ 2020-12-22 22:48 UTC (permalink / raw)
  To: Nathan Sidwell; +Cc: gcc-patches

On Mon, 21 Dec 2020, Nathan Sidwell wrote:
> Yes, this is good.  I already managed to commit some of this with 
> the 98412 patch.

I wasn't sure, but seeing that you had not applied this, I figured
this was approval and pushed the remaining portion this afternoon,
per the below.

Gerald

PS: I am really starting to like our use of git.


commit 7e63d383b89cd75b7775883d71ed09724b9ee73f
Author: Gerald Pfeifer <gerald@pfeifer.com>
Date:   Tue Dec 22 13:37:56 2020 +0100

    c++: Fix build with clang
    
    After the addition of libcody building with clang 10.0.1 would fail
    as follows:
    
      In file included from .../libcody/cody.hh:24:
      In file included from /usr/include/c++/v1/memory:653:
      /usr/include/c++/v1/typeinfo:346:5: error: no member named 'fancy_abort'
      in namespace 'std::__1'; did you mean simply 'fancy_abort'?
        _VSTD::abort();
        ^~~~~~~
    
    mapper-client.cc and mapper-resolver.cc have addressed this already
    by getting <string> and <vector> included; do the same for module.cc.
    
    gcc/cp:
    2020-12-22  Gerald Pfeifer  <gerald@pfeifer.com>
    
            * module.cc (INCLUDE_STRING): Define.
            (INCLUDE_VECTOR): Ditto.

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index 7e38293545f..ed3dbe244a3 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -207,6 +207,8 @@ Classes used:
 
 #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
 #include "config.h"
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #include "system.h"
 #include "coretypes.h"
 #include "cp-tree.h"

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-12-22 22:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-15 15:49 C++ 20 modules Nathan Sidwell
2020-12-15 22:33 ` Nathan Sidwell
2020-12-15 22:42   ` Rainer Orth
2020-12-16 21:52   ` Nathan Sidwell
2020-12-17 21:37     ` Nathan Sidwell
2020-12-20 23:57       ` Gerald Pfeifer
2020-12-21 13:55         ` Nathan Sidwell
2020-12-21 17:38           ` Gerald Pfeifer
2020-12-21 17:45             ` Nathan Sidwell
2020-12-22 22:48               ` Gerald Pfeifer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).