/g/ - Technology

install openbsd

[Make a Post]
[X]





GCC is bloat, malware, backdoor Nanonymous No.7636 [D][U][F][S][L][A][C] >>7658
File: 95ec121fd4ca7ff78876da9ce685f1fa69e3b1cdecd03a2637a5e899a73c3555.png (dl) (12.75 KiB)
I updated gcc compiler
why the fuck when I compile something, release binary is now 2.5 times bigger compared to old GCC? what backdoors and bloat are included?
how can a simple code be so big in binary? what is hidden there? how can I trust it?
should I downgrade to old GCC?

Nanonymous No.7637 [D] >>7650 >>7713 >>8047
>use C++
>int shit = 9999999999999999999;
>stupid GCC compiles it, only gives warning

Nanonymous No.7641 [D] >>7644
Well why is it bigger? You should look into that and then report back.

Nanonymous No.7644 [D] >>7648 >>7649
>>7641
>Well why is it bigger? You should look into that and then report back.
how to I look into it? it's binary shit
any software that can look into?

a simple code compiled in new GCC is few times bigger than old GCC, using no options, not linking against any 3rd party library

I am sure they put backdoors there or systemd
also big binary will take more space in CPU cache

Nanonymous No.7648 [D]
>>7644
Check release notes, probably some optimization that was default before got turned off. Alternatively, that's why the smear job was run on Stallman while they messed with his compiler.

Nanonymous No.7649 [D] >>7671
>>7644
There are utilities for doing binary diffs. Additionally you can run gcc with -S to dump the assembly. You could then try and see what changed in the different versions. You could also compare the sizes of the sections in the elf file you are creating. You can do so with readelf -S and then looking at the size column.

Nanonymous No.7650 [D] >>7652
>>7637
>only gives warning
That's the correct thing to do you nigger. Set -Werror if you want it to fail

Nanonymous No.7652 [D] >>7658 >>7699 >>7713
>>7650
wrong, nigger
there is not a single valid use of >int shit = 9999999999999999999;
it is obvious error

Nanonymous No.7658 [D] >>7694
>>7636
>old GCC
Are we supposed to read your mind? Don't ask fucking questions like this if you're not going to provide at a bare minimum the gcc you upgraded from and the gcc you upgraded to. Are we talking gcc 4.9 to gcc 8? gcc 5 to gcc 7? You fucking monkey.
>how can a simple code be so big in binary?
Maybe the compiler added a bunch of jizm to the binary because it detected your insatiable appetite for men's loads.
>what is hidden there?
How the fuck are we supposed to know? Did you post the binary?
>how can I trust it?
You should reflect on trusting trust. Hmm, that rings a bell.
>>7652
>wrong, nigger
no u
>it is obvious error
According to the C standard, it's "implementation defined" behavior. Complain to ANSI/ISO, bitch.

Nanonymous No.7664 [D]
>near 2020
>still using GCC
You deserve it.

Nanonymous No.7666 [D] >>7667
What compilers are you using?

Nanonymous No.7667 [D] >>7695 >>7713
>>7666
Clang or CompCert.

Nanonymous No.7670 [D]

>this is what Cniles really think

Nanonymous No.7671 [D]
>>7649
Nope. That's just stupid.

Nanonymous No.7694 [D]
I checked and it turns out that GCC is retarded malware, other people confirm that if you use <iostream> entire bloated std lib will be glued to your binary
other (proprietary) compilers produce 5 times smaller binaries for same code

>>7658
>Are we talking gcc 4.9 to gcc 8? gcc 5 to gcc 7? You fucking monkey.
older than that
>Maybe the compiler added a bunch of jizm to the binary because it detected your insatiable appetite for men's loads.
this is the open source support? I should have stick to proprietary software
>According to the C standard, it's "implementation defined" behavior. Complain to ANSI/ISO, bitch.
fuck C standard, don't follow it

Nanonymous No.7695 [D] >>7701 >>7709
>>7667
>Clang or CompCert.
Clang is a malware and botnet that only supports botnet hardware and software like Intel ME, Windows 10
it is on my blacklist

Nanonymous No.7697 [D] >>7698 >>7701
Wasn't Clang also proven to have worse performance than GCC?
I don't understand why anybody would use Clang over GCC.

Nanonymous No.7698 [D] >>7704
>>7697
>Wasn't Clang also proven to have worse performance than GCC?
performance is a meme, so it doesn't matter
what matters though, is that Clang drops support for any older OS and hardware as quickly as possible, so you are forced to (((upgrade))) and install newest botnet telemetry and hardware, systemd, windows 10, etc
this is the reason why Clang should be on a blacklist

Nanonymous No.7699 [D] >>7705 >>7713
>>7652
>there is not a single valid use of >int shit = 9999999999999999999;
Do you want me to start listing esoteric modular arithmetic shit? People do silly things in their code sometimes, gcc isn't going break their compile because a dumb nigger like you doesn't want to set a flag that you should set anyways.

Nanonymous No.7700 [D] >>7702
>CompCert
From their manual:
>On PowerPC and ARM, the code generated by CompCert runs [...] approximately 10% slower than GCC 4 at optimization level 1 (gcc -O1), 15% slower at optimization level 2 (gcc -O2) and 20% slower at optimization level 3 (gcc -O3).

So....it's wore than GCC and not free software.
Their "free" (not as in speech) license is only for "evaluation, research and education purposes".

Doesn't sound too good, am I missing a red pill somewhere?

Nanonymous No.7701 [D] >>7703 >>7705
>>7695
You need to do some research man. FreeBSD and OpenBSD uses Clang.
>>7697
>worse performance than GCC
Not true. It's faster than GCC in almost all aspects. It's basically GCC done right. It also has permissive license.
I would go to CompCert anyway (was able to compile suckless "st" using it once).

Nanonymous No.7702 [D][U][F] >>7705
File: ad7784e24ed3ed6d6d69ccc0608a353d113f5ba7692f5bdb6067bfe0399d4656.png (dl) (22.24 KiB)
>>7700
Link to said manual:
http://compcert.inria.fr/man/manual001.html#sec2

See "1.4.3 Performance of the generated code".

Nanonymous No.7703 [D]
>>7701
>You need to do some research man. FreeBSD and OpenBSD uses Clang.

How does that make Clang better than GCC?

Nanonymous No.7704 [D] >>7705 >>7713
>>7698
Your position doesn't make sense.

>who cares about performance
The worse the software performance, the sooner it forces the user to upgrade their hardware.

>waaa clang dropped support for older hardware, forcing you to upgrade
You can't use older "obsolete" hardware without optimized, very performant software, if you want to keep up.
"Muh obsolete" is usually bad (though not always, Adobe Flash being obsoleted is good), and makes un-optimized, bloated software seem like no big deal because "hey, the machines these days can handle it".

Nanonymous No.7705 [D] >>7707 >>7710 >>7713
>>7699
>there is not a single valid use of >int shit = 9999999999999999999;
>Do you want me to start listing esoteric modular arithmetic shit? People do silly things in their code sometimes, gcc isn't going break their compile
when dumb GNU UNIX C niggers do shit like this or other "esoteric" shit, compiler should stop and show error. unix niggers should fix it and use sane and readable things if they want to compile. their software is full of security holes and memory leaks
if int can store value from -2147483648 to 2147483647, then compiler shouldn't allow anything out of this range
languages and compilers for white people, like pascal family languages, doesn't allow shit that GCC allows
GCC niggers, "hacker culture", are not about producing quality productive software, but about doing some hacky CLI shit with unreadable code full of security issues

>because a dumb nigger like you doesn't want to set a flag that you should set anyways.
what flag? errors on warning?
that's a shit flag because it makes retarded GCC error on this:
for(int i=0; i < string.length(); i++)
>comparison between signed and unsigned integer expressions

>>7701
>You need to do some research man. FreeBSD and OpenBSD uses Clang.
it might support them (current version of those OS), but Clang does not support legacy OS and hardware, so it is a botnet and shouldn't be used

>It also has permissive license.
that's not an advantage, permissive licenses are cuck licenses

>>7702
why is -O0 so slow? is it used by default?

>>7704
>The worse the software performance, the sooner it forces the user to upgrade their hardware.
not in real life. whether some compiler makes 5-15% faster code is meaningless. unless it's 50% or something like that
what really is slowing software is nigger shit like javascript, python, java (memory usage), Electron. those nigger shits can be 5-50 times slower and bloater than medium or even low quality compiled code

even 20 year old PC could support most real life tasks like writing documents, web browsing, printing, emails, video games, playing music and video
but software is bloater and in shit languages and frameworks on purpose, people are pushed into new botnet OS and hardware

>You can't use older "obsolete" hardware without optimized, very performant software, if you want to keep up.
wrong, any compiled software is optimized enough. 10% faster compiler means shit
you cannot use older hardware and OS because software breaks compatibility on purpose, just like (((Clang))) niggers

>"Muh obsolete" is usually bad
niggers like Clang and GNU+Linux are strong pushers of "muh obsolete". they are doing what jews like

Nanonymous No.7707 [D][U][F] >>7713
File: cdad1a48216e5f19b902a4575931f52de96b65763d182119b3af559d2e47f8a4.jpg (dl) (63.20 KiB)
>>7705
>it might support them (current version of those OS), but Clang does not support legacy OS and hardware, so it is a botnet and shouldn't be used
Imagine being this delusion. Jeez son.
You know what? You guys can keep feeding the troll, I won't.
Also, back to /pol/, this is not your place.

Nanonymous No.7709 [D] >>7744
>>7695
>that only supports botnet hardware
It supports RISC-V though. Also your gripes are probably more with the LLVM project instead of Clang.
>esoteric modular arithmetic shit
There is nothing wrong with intentionally using modular arithmetic. It is a problem if users do not know it is modular arithmetic and are expecting saturation arithmetic. Using a value of 9999999999999999999 on a target which can not store that large of a number is never useful and never intentional.

Nanonymous No.7710 [D] >>7713
>>7705
>when dumb GNU UNIX C niggers do shit like this or other "esoteric" shit, compiler should stop and show error
SET DASH WERROR YOU DUMB NIGGER. This option is literally there for people like you. Look, you can even make it automatic:
echo "alias gcc='gcc -Werror'" >> ~/.bashrc
Was that so hard?

>that's a shit flag because it makes retarded GCC error on this
Don't set -Wall if you don't want warnings on dumb shit

>why is -O0 so slow?
Because it doesn't optimize
>is it used by default?
yes

Nanonymous No.7713 [D] >>7720
>>7667
why am i not surprised
>>7637
>>7652
there are about 3000 other things you should be concerned about in C before this obvious fucking behavior
>>7699
your point about conforming to the spec is right, but the rest of your argument is wrong as well.
>>7704
>You can't use older "obsolete" hardware without optimized, very performant software, if you want to keep up.
the compiler wont help you here pajeet
>>7705
>GCC niggers, "hacker culture", are not about producing quality productive software, but about doing some hacky CLI shit with unreadable code full of security issues
based.
>>7707
>not wanting botnet
>therefore he is /pol/
lurk moar
>>7710
>SET DASH WERROR YOU DUMB NIGGER. This option is literally there for people like you.
maybe but not for me. i care about correct language design and adding more features to fix previous problem just makes it worse

Nanonymous No.7720 [D] >>7721
>>7713
The anon who talked about the spec is not me. It's also a retarded point, so I don't know why you praise him. GCC adds features beyond the spec all the time. The spec doesn't stop them from erring on that snippet, they could if they wanted to. They don't because they don't want to break working code.

>i care about correct language design
Then why not go masturbate in an ML channel or something? C is about practical language design, an important part of which is not breaking code that's been working for 50 years just because it's esoteric.

Nanonymous No.7721 [D] >>7722 >>7744
>>7720
>GCC adds features beyond the spec all the time.
Well...
>Then why not go masturbate in an ML channel or something?
That's funny because SML is actually much better speced that C can ever hope to be, while being simplier and only marginally slower despite being memory-safe.
>C is about practical language design
There's nothing practical about C you gigantic retard. People use C because the current religion says to. The result is garbage products that crash all the time. And no, they do not fucking maintain some form of backwards compatability other than a few hot topics. In reality they crash due to changing specs just as much as the other reasons they crash.

Nanonymous No.7722 [D] >>7724
>>7721
>In reality they crash due to changing specs just as much as the other reasons they crash.
Please back up this statement with facts and logic.

Nanonymous No.7724 [D] >>7726 >>7738
>>7722
your average C "programmer" (or any programmer of any language, but I'm talking about professional as well as open soruce C programmers in particular) doesn't give 2 fucks about APIs or standards. He will just write some code against some interface and ooga booga it worked on my machine ship it. They can't even use the language itself properly. During x64 migration all programs broke because nobody could even use a fucking int properly.

Nanonymous No.7726 [D]
>>7724
That's not changing specs. That's developers not following specs.
Try again, maybe we'll get there someday.
FACTS AND LOGIC bro. Use it.

Nanonymous No.7733 [D] >>7744
Ooops, I meant "changing implementation" when I wrote "changing specs". As in, someone programs to his made up conception of what the spec is, and it only works on his machine for a year or two, then stops working, because the language or library he programmed against changed implementation without violating the spec.
In actual C programming, nobody even knows what the standards say, or which standard they're following, be it libraries or the language itself. They may know a line or two from the spec about some popular topics like signed shift, but meanwhile, their entire codebase is based around de facto semantics, which, indeed actually changes. Because one year people say "XX is how you code C" and the next year they say "XY is how you code C". No language in existence can even hope to fuck this up as much as C has.
Vi (not vim) used to segfault on my phone. Because it's not the arch they coded for. Pcmanfm crashes from actions so trivial, you'd think it's a portability issue, but it's impossible to tell without looking at the code. The very concept of UNIX distros is just for maintainers to try and guess what shit works with what version of shit, since the authors were too incompetent to do that themselves. This is why when I cite some bullshit C program crashing on my Gentoo machine, some cunt says "use a real distro like Debian". No, get real engineering practices.

Nanonymous No.7734 [D]
Oh yeah and let's not mention that ANSI C costs like $200. Or you can use your meme C99 and by the time you finish learning it you can start learning C1X or whatever the fuc it was called.

Nanonymous No.7738 [D][U][F] >>7740
File: 13cc237aa1356c26ec0836861429ea606ab3be433aabd96a3cc904b75d7c2ad0.png (dl) (253.45 KiB)
>>7724
Shed some light on "how to use a fucking int properly", please.

Nanonymous No.7740 [D]
>>7738
By not assuming it's a certain size or any other undefined/partially defined property holds. 99% of Cnigger code fails this shit. And the ones that do don't bother with any of these "academic" concerns in corner cases, like when the array is X GB or X TB, yet these cases are still commonly reachable and exploitable.

Nanonymous No.7741 [D]
above i mean stuff like signed shift being undefined in certain cases (can't remember which)
Also other dimensions matter.
like word tearing, volatile, non-visible writes, and how to use a global int from a signal handler (have to use static volatile sig_atomic_t)

Nanonymous No.7744 [D] >>7745
>>7709
>There is nothing wrong with intentionally using modular arithmetic. It is a problem if users do not know it is modular arithmetic and are expecting saturation arithmetic.
Hmm, maybe gcc should issue a warning then.
THEY ALREADY FUCKING DO

>>7721
>that's funny, because I was just pulling my wang out
Wow great, cya later friend
>the current religion says so
it says the exact opposite tho. Every nigger and his grandmother has been ripping on c since it was invented. People keep using it anyways, because it does what it says on the tin.

>He will just write some code against some interface and ooga booga it worked on my machine ship it
This is perhaps the reason why c programmers ship code, whereas ML coders masturbate to how pure their language is.

>>7733
>Vi (not vim) used to segfault on my phone. Because it's not the arch they coded for
Fucking lol. "how dare bill joy not make special allowance for my phone when he was writing vi!" Wasn't ANSI C standardized after they stopped updating vi?

>No, get real engineering practices.
Maybe pay real engineers to write programs for you in SML. When they do it for free, you can expect quick and dirty.

Nanonymous No.7745 [D]
>>7744
>because it does what it says on the tin.
you don't remotely know what you're talking about. not even any modern machine architecture does what it's talking about on the tin. programming assembly right now is like trying to guess how some operation will affect the Java GC. and C is just 1000x more complex due to high level interfacing issues between the user and the language, and between the user and libraries, which you wouldn't understand either since you don't understand engineering and specification.
>Every nigger and his grandmother has been ripping on c since it was invented.
i've only noticed this after rust and go and shit became popular (2010 onward).
>"how dare bill joy not make special allowance for my phone when he was writing vi!"
This has nothing to do with the phone retard, it has to do with writing code that doesn't crash because int size or some other bullshit changed. Yes it's hard, but it's even more bullshit when you suck the C cock and not even attempt to solve this problem.
>>No, get real engineering practices.
>Maybe pay real engineers to write programs for you in SML. When they do it for free, you can expect quick and dirty.
So you agree with me, all software is shit.

Nanonymous No.8047 [D]
>>7637
GCC is glowie shit but you're the retard for not treating every compiler warning as an error and for using C++.
If it doesn't perform acceptably when it claims it is, what makes you think a warning isn't accidentally-strap-a-nuke-on-one-of-elon-musk's-spaceships level of failure?

Nanonymous No.8071 [D] >>8077
You are all behaving foolishly (no offense).

The current religion says to use JavaScript on Electron.
Second from that some Windows .NET bullshit, or maybe the latest (iOS(TM)!) XCode cluster fuck, or thirdly Java on anything.

C is a far cry from any of that shit, being much closer to the hardware (and thus performant and non-bloated).

Is it shit compared to perfection? Yes!
But perfection isn't fucking attainable, and you obviously aren't anywhere close(er).

Where the hell is your better or less terrible alternative!?
Not a single fucking one has been fucking fucked into textual existence in any of these fucking posts.

>ML
Besides looking like a deranged computer barfed and shat on a fucking screen, ML has only been mentioned as a spooky ~straw-man~ of the ~other side~ in this thread.
No one has in good faith suggested ML as an alternative in this thread!

PS:
Those ~ ~ are not meant to be jew brackets you fucking wanker reading this thinking I mistyped.
They are glow tildes because fuck you!

Nanonymous No.8077 [D][U][F]
File: 7b7715fe19821eb36959f0f7c48f219eae02dbc7a6e8dea9907d31c2d63ec3ca.jpg (dl) (105.27 KiB)
>>8071
the fact that pic related exists proves that the SJW/webshitter threat doesn't actually exist. even normalfags know SJW/webshitters are retards. that leaves left only the only unquestioned religion, which is C.