From acharles at outlook.com Thu May 21 00:48:08 2015 From: acharles at outlook.com (Ahmed Charles) Date: Thu May 21 00:48:15 2015 Subject: [build-users] [build2] Compile fixes Message-ID: I had issues getting build2 to compile with gcc (4.9) or clang (Apple 6.1). Here are the changes I needed to get it to compile with gcc, though it still doesn't compile with clang. https://github.com/ahmedcharles/build2 I also included a bootstrap script to make it more obvious what people have to do to get a working b executable, at https://github.com/ahmedcharles/build2/tree/bootstrap From boris at codesynthesis.com Fri May 22 09:50:23 2015 From: boris at codesynthesis.com (Boris Kolpackov) Date: Fri May 22 09:50:23 2015 Subject: [build-users] Re: [build2] Compile fixes In-Reply-To: References: Message-ID: Hi Ahmed, Ahmed Charles writes: > I had issues getting build2 to compile with gcc (4.9) or clang > (Apple 6.1). Here are the changes I needed to get it to compile > with gcc, though it still doesn't compile with clang. > > [...] > > I also included a bootstrap script to make it more obvious what > people have to do to get a working b executable Thanks for these. I've used them as a base for slightly different fixes/bootstrap. It is now all in master, including the INSTALL file that outlines the bootstrap procedure. It now compiles for me on my Ubuntu laptop with gcc 4.9.2 and clang 3.5.0. Can you give it a try and see if it all works for you now? Also, let me know if you run into any other issues. Boris From acharles at outlook.com Fri May 22 12:35:22 2015 From: acharles at outlook.com (Ahmed Charles) Date: Fri May 22 12:35:29 2015 Subject: [build-users] RE: [build2] Compile fixes In-Reply-To: References: , Message-ID: > Date: Fri, 22 May 2015 15:50:23 +0200 > From: boris@codesynthesis.com > To: acharles@outlook.com > CC: build-users@codesynthesis.com > Subject: Re: [build2] Compile fixes > > Can you give it a try and see if it all works for you now? > > Also, let me know if you run into any other issues. It works with g++-4.9, but doesn't with clang, because it uses libc++. You're relying on std::map::const_iterator not needing the type of K or V to be complete when defining the scope class. It seems libstdc++ allows incomplete types, but libc++ doesn't, so the iterator in the scope class makes the class not compile. Hopefully that made sense. :) From boris at codesynthesis.com Mon May 25 10:41:49 2015 From: boris at codesynthesis.com (Boris Kolpackov) Date: Mon May 25 10:41:45 2015 Subject: [build-users] Re: [build2] Compile fixes In-Reply-To: References: Message-ID: Hi Ahmed, Ahmed Charles writes: > It works with g++-4.9, but doesn't with clang, because it uses > libc++. You're relying on std::map::const_iterator not > needing the type of K or V to be complete when defining the > scope class. Ok, that's fixed. Now the only remaining issue is the use of the header from libstd++. I will work on a custom, cross-platform implementation and will ping you when ready. Boris From acharles at outlook.com Mon May 25 16:37:16 2015 From: acharles at outlook.com (Ahmed Charles) Date: Mon May 25 16:37:22 2015 Subject: [build-users] RE: [build2] Compile fixes In-Reply-To: References: , , , Message-ID: > Date: Mon, 25 May 2015 16:41:49 +0200 > From: boris@codesynthesis.com > To: acharles@outlook.com > CC: build-users@codesynthesis.com > Subject: Re: [build2] Compile fixes > > Hi Ahmed, > > Ahmed Charles writes: > > > It works with g++-4.9, but doesn't with clang, because it uses > > libc++. You're relying on std::map::const_iterator not > > needing the type of K or V to be complete when defining the > > scope class. > > Ok, that's fixed. Now the only remaining issue is the use of > the header from libstd++. I will work > on a custom, cross-platform implementation and will ping you > when ready. Cool, thanks.