"GSoC"
Hi Sir / mam, I hope this email finds you well. As an enthusiastic contributor with a strong grasp of C/C++ and familiarity with Rust, I am eager to explore potential projects for Google Summer of Code (GSoC) 2024 within the GNU Compiler Collection (GCC) ecosystem. With my background in these languages and my passion for advancing compiler technology, I believe I could make significant contributions to various GCC projects. I would greatly appreciate any guidance on how to proceed further with project selection or any additional insights into the GCC projects relevant to my skill set. Thank you for considering my interest, and I look forward to your response. Warm regards, M Hamza Nadeem
Is --as-needed the default these days?
Hi, It looks like somewhere between gcc-5.3.0 and gcc-6.2.1 --as-needed became the default: https://gist.github.com/x-yuri/1b4c19891be50b2b8801689de1487009 In other words it looks like on Alpine Linux 3.4 -lintl always adds libintl, on >= 3.5 only if some of its symbols are really needed. Can you possibly give a link to the commit or a changelog entry? Regards, Yuri
Re: Is --as-needed the default these days?
On Sun, 24 Mar 2024, 18:01 Yuri Kanivetsky via Gcc, wrote: > Hi, > > It looks like somewhere between gcc-5.3.0 and gcc-6.2.1 --as-needed > became the default: > > https://gist.github.com/x-yuri/1b4c19891be50b2b8801689de1487009 > > In other words it looks like on Alpine Linux 3.4 -lintl always adds > libintl, on >= 3.5 only if some of its symbols are really needed. > > Can you possibly give a link to the commit or a changelog entry? > That's a linker option, and the linker is not part of GCC. Any change in linker behaviour is not because of a change in GCC. The GNU linker can be configured to default to --as-needed or not, and different distros use different defaults.
Re: Is --as-needed the default these days?
> That's a linker option, and the linker is not part of GCC. Any change in > linker behaviour is not because of a change in GCC. Have you noticed what gcc does? 3.4: /usr/libexec/gcc/x86_64-alpine-linux-musl/5.3.0/collect2 ... -lintl 3.5: /usr/libexec/gcc/x86_64-alpine-linux-musl/6.2.1/collect2 ... --as-needed ... -lintl collect2 is supposedly part of GCC. And what passes --as-needed is supposedly gcc. I was told on IRC that generally --as-needed is not the default. For the linker I guess. Although I wasn't able to confirm it. The option is supposedly defined here: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=ld/lexsup.c;h=dad3b6059edfe1fe31f46c454fdc90d55b0aed5b;hb=ec6f962151998434f9cc743386f2a49a1ce1a0f6#l295 But I don't see the default value, and where it's used. And also it looks like gcc started to pass --as-needed to the linker since 5.x/6.x. Am I missing something? > The GNU linker can be configured to default to --as-needed or not, and > different distros use different defaults. Can you tell me briefly how it's configured? Is there a config? Regards, Yuri
Re: Is --as-needed the default these days?
On Sun, Mar 24, 2024 at 11:54 AM Yuri Kanivetsky via Gcc wrote: > > > That's a linker option, and the linker is not part of GCC. Any change in > > linker behaviour is not because of a change in GCC. > > Have you noticed what gcc does? Upstream GCC does (still) not default to adding `--as-needed` to the command line (except around libgcc). Some distros add patches which add `--as-needed` by default though. It looks like alpine is one of those distros. Maybe you should ask them instead of asking us. It looks like they made the change between their 3.4 and 3.5 release. Thanks, Andrew Pinski > > 3.4: /usr/libexec/gcc/x86_64-alpine-linux-musl/5.3.0/collect2 ... -lintl > 3.5: /usr/libexec/gcc/x86_64-alpine-linux-musl/6.2.1/collect2 ... > --as-needed ... -lintl > > collect2 is supposedly part of GCC. And what passes --as-needed is > supposedly gcc. > > I was told on IRC that generally --as-needed is not the default. For > the linker I guess. Although I wasn't able to confirm it. The option > is supposedly defined here: > > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=ld/lexsup.c;h=dad3b6059edfe1fe31f46c454fdc90d55b0aed5b;hb=ec6f962151998434f9cc743386f2a49a1ce1a0f6#l295 > > But I don't see the default value, and where it's used. > > And also it looks like gcc started to pass --as-needed to the linker > since 5.x/6.x. > > Am I missing something? > > > The GNU linker can be configured to default to --as-needed or not, and > > different distros use different defaults. > > Can you tell me briefly how it's configured? Is there a config? > > Regards, > Yuri
Re: Is --as-needed the default these days?
> Upstream GCC does (still) not default to adding `--as-needed` to the > command line (except around libgcc). Some distros add patches which > add `--as-needed` by default though. It looks like alpine is one of > those distros. Maybe you should ask them instead of asking us. It > looks like they made the change between their 3.4 and 3.5 release. I believe I've found the change: https://git.alpinelinux.org/aports/commit/?id=5b7befa1b989315a57f4fb49b8381ce06ded96c9 As we saw above on 3.4 (gcc-5.3.0) it adds libintl, on 3.5 (gcc-6.2.1) it doesn't. This commit changes pkgver from 5.3.0 to 6.1.0 and seems to make gcc add --as-needed, can you confirm? > Thanks, > Andrew Pinski > > > > > 3.4: /usr/libexec/gcc/x86_64-alpine-linux-musl/5.3.0/collect2 ... -lintl > > 3.5: /usr/libexec/gcc/x86_64-alpine-linux-musl/6.2.1/collect2 ... > > --as-needed ... -lintl > > > > collect2 is supposedly part of GCC. And what passes --as-needed is > > supposedly gcc. > > > > I was told on IRC that generally --as-needed is not the default. For > > the linker I guess. Although I wasn't able to confirm it. The option > > is supposedly defined here: > > > > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=ld/lexsup.c;h=dad3b6059edfe1fe31f46c454fdc90d55b0aed5b;hb=ec6f962151998434f9cc743386f2a49a1ce1a0f6#l295 > > > > But I don't see the default value, and where it's used. > > > > And also it looks like gcc started to pass --as-needed to the linker > > since 5.x/6.x. > > > > Am I missing something? > > > > > The GNU linker can be configured to default to --as-needed or not, and > > > different distros use different defaults. > > > > Can you tell me briefly how it's configured? Is there a config? > > > > Regards, > > Yuri
Re: [musl] GCC optimizer is provably junk. Here is the evidence.
On 2024-03-24 13:20:36 -0500, Dave Blanchard wrote: > Here's a nice gem from Julian Waters, a thoroughly pleasant and amiable > fellow: > > > Hello again, Dave. Have you managed to learn how a basic language > > Interpreter works before commenting on the significantly-more-complex > > gcc's efficiency? Or were you not able to because your IQ is below the > > freezing point of water and you can't even understand what a basic > > tree walker is? > > > Then again, with an address like killthe.net, why should we even take > > you seriously? Hell, even though I miraculously agree that stuff like > > GNU and Linux is not beginner friendly, and gcc could do with some > > improvements in that department, no one wants to take any advice from > > a self righteous and idiotic piece of shit like yourself. At least > > Stefan was smart enough to bail when others pointed out the holes in > > his examples of gcc's instruction selection allegedly being poor. You, > > not so much. I doubt the clang people want you either, so do them a > > favour and stay the hell away from LLVM, and this is coming from > > someone who doesn't really like LLVM in the first place. > Since this message seems to be in violation of GCC's code of conduct, I assume you brought that up. What was the conclusion of that? If you did not, why not? > In my view, the entire GNU organization is a toxic cancer on the UNIX > world...and it was designed to be exactly that from the very beginning. > > It appears the true purpose of GNU was to "embrace, extend, extinguish" the > fledgling UNIX open source world; to capture and control it with sinister and > selfish motives and intentions; exactly the same strategy as Microsoft has > famously used elsewhere, and exactly the same as RedHat along with Linux > Puttering and their ilk have continued today. When one understands this, and a > lot of things that don't make any sense will suddenly become clear. > This is quite severe accusation, one that does not really seem to be based in much facts. Regardless of what you think of GNU software regarding bloat and some other choices, we collectively own the movement much for advancing the cause of free software in the original UNIX landscape full of proprietary tools. -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. signature.asc Description: PGP signature
Re: [musl] GCC optimizer is provably junk. Here is the evidence.
On Sun, Mar 24, 2024 at 01:20:36PM -0500, Dave Blanchard wrote: > To whom it may concern--e.g. users of GCC who naively assume GCC is > maintained by professionals who care about correct code generation: It does not concern us, so please remove the musl list from CC here and please do not CC this list trying to start flamewars that have nothing to do with us. If some folks CC'd on this do want to participate, please remove us from CC in your replies.
gcc-14-20240324 is now available
Snapshot gcc-14-20240324 is now available on https://gcc.gnu.org/pub/gcc/snapshots/14-20240324/ and on various mirrors, see https://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 14 git branch with the following options: git://gcc.gnu.org/git/gcc.git branch master revision bb04a11418f54c4c062802d491ff2c3720b7313e You'll find: gcc-14-20240324.tar.xz Complete GCC SHA256=41bf7be5dc029112a9df625266e7de030ffc36ff3638f270b180ae8c91fe6449 SHA1=5e3ac2d2e655aed778f222d6e7c20f7cb51b948e Diffs from 14-20240317 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-14 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.
re: P2996R2
i notice P2996R2 ( https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2996r2.html ) isn't listed yet in https://gcc.gnu.org/projects/cxx-status.html#cxx26 i'm assuming it's not implemented yet but not sure where to suggest that that particular chart include it is this the place? what is the policy for reporting C++2n P proposals for inclusion on it? Jeff Cliff -- End the campaign to Cancel Richard Stallman - go to stallmansupport.org !