並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 61件

新着順 人気順

GCCの検索結果1 - 40 件 / 61件

GCCに関するエントリは61件あります。 プログラミングprogramminglinux などが関連タグです。 人気エントリには 『コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み』などがあります。
  • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

      コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
    • 「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita

      TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能は良くない UTF-8は神 2023/12/06追記 誤りがあったので訂正します。こんな読まれると思ってなかったので正直ちょっとびっくりしていますが、いろいろコメントありがとうございました。(ツイート等全て拝見しました。) Shift_JISが悪いわけではない(デフォルトのエンコーディング設定の問題)→追記しました UTF-8にはUTF-FSSという仕様でこの問題が回避されている→マジでタメになる知識ありがとうございます OSによってデフォルトのエンコーディング設定が異なるせいで、デフォルト環境での動作がOSにより異なる→なるほど?(調査中) CRLFとLF問題では→なるほど?(調査中) そんな問題何を今更→UTF-8が出てから生まれたからです

        「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
      • C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -

        C言語(C++を含む)を習得したい人,ポインタを勉強したい人はgcc-14を使いましょう.難しいところは gcc-14 が丁寧に解説してくれます C言語の難しいところ 例を示します.C言語で記述された,たった6行のソースコードです int main() { int buf[10]; buf[10] = 0; return 0; } このソースコードには問題があります.初見でわかるでしょうか? : : : 問題があるのは buf[10]=0 の部分です.C言語でやりがちなミスですが,これがバグやセキュリティホールの原因になります. C言語が難しい理由は二つあります.この手の問題を見逃しやすい点と,この手の問題を理解することが難しい点の二つです gcc 14 に解説してもらいましょう 上記の6行のソースコードをgcc14を使ってコンパイルしてみます ソースコードのファイル名は test.c と

          C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -
        • 2で割ることと3で割ること - Qiita

          この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

            2で割ることと3で割ること - Qiita
          • ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck

            ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c.html 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/…

              ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck
            • Pythonコードを35000倍に高速化したい

              はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々な処理系が開発されています。 この記事はPythonで書かれたコードを35000倍に高速化するにはどのような方法があるかについてまとめたものです。 この記事は: Pythonで書かれたアルゴリズムを35000倍に高速化する 事前コンパイル、並列化、SIMD演算を駆使する 最終的に44000倍まで高速化できた なぜ35000倍? 2023年5月2日にModular社よりPythonの使いやすさとC言語の性能を兼ね備える新しいプログラミング言語、Mojoの開発について発表がありました。低レベルのハードウェア向けにコンパイル可能なこと、文法的にはPythonを踏襲しており、既存のPythonライブラリを利用可能であること

                Pythonコードを35000倍に高速化したい
              • リンカ

                ついに、リンカの説明をするときが来た。 ここに至るまでに、何度「リンカのところで説明する」と書いただろうか? ここまで読んできた人ならば、 リンカというものが、なにやら色々やっているんだな、というのはわかってきたのではないかと思う。 筆者が常々思っていることのひとつに、「C言語に関する書籍は、リンカの説明をおざなりにしすぎだ」というのがある。 多くのC言語の書籍は、 コンパイラがソースコードをアセンブリコードに変換します アセンブラがアセンブリコードを機械語に変換します リンカが機械語をリンクして実行ファイルが作られます と、いう解説がなされがちである。この説明を見たら、多くの人が、「え、リンクってなんですか?」と、思うに違いない。 アセンブラには、「人間が読めるニーモニックを、機械が読める機械語に変換する」みたいな、最低限の説明が付くものの、 リンカの説明は「リンクをします」のひとことだ

                • malloc.c を読む (malloc / free)

                  このシリーズではこれらの関数が内部でどのように処理されるのかを調べていきます。 malloc.c を読む (malloc / free) malloc.c を読む (bins) malloc.c を読む (arena) 今回は malloc() free() の全体像を紹介します。 注意としてここでの目的は全体を俯瞰して、詳細を詰めずとも各 bins の役割を理解し、攻撃手法を理解できるようにすることです。それに合わないマルチスレッドや最適化などにおける緻密なトリックやコーナーケースなどは暗黙的に実装されていると仮定します。その詳細についてはソースコードや他の資料を参考にしていただきたいです。 ここで扱う glibc のバージョンは v2.38 です。また glibc のソースコードはブラウザ上で読むことができます。 https://elixir.bootlin.com/glibc/lat

                    malloc.c を読む (malloc / free)
                  • ネイティブコンパイルEmacsの登場

                    日本時間の2021年4月26日午前3時6分、Emacsのmasterブランチにfeature/native-compブランチがマージされました(コミット:Merge branch ‘feature/native-comp’ into into trunk)。これにより、HEADのEmacsをビルドすると、Native compilation機能を兼ね備えたネイティブコンパイルEmacs、通称Gcc Emacsが使えるようになりました。 ネイティブコンパイルEmacsの機能 # ネイティブコンパイルEmacs(以下、Gcc Emacsと呼びます)は、Andrea Corallo、Luca Nassi、Nicola Mancaの3名によるBringing GNU Emacs to Native Code という論文で詳細が説明されています。 簡単に説明すると、これまでのEmacsは、Elisp

                      ネイティブコンパイルEmacsの登場
                    • 「バグを意図的にバグのまま残す」という選択肢がある

                      はじめに gcc v12.1において、C++の正規表現ライブラリstd::regexに、正規表現のバリデーションを改善するパッチ(以下"改善パッチ"と表記)が取り込まれました。改善パッチによって、これまではバリデーションにひっかからなかった不正な正規表現文字列が"正しく"不正なものと認識されて例外が発生するようになりました。 これだけ聞けばいいことだけのように思えるかもしれませんが、実はそうでもなかったりします。経験豊富なかたであれば見た瞬間ゾッとしたかもしれません。本記事では、この一見問題なさそうな改善パッチによって発生しうる問題、および、その具体的例について紹介するとともに、この手のパッチを当てるかどうかは難しい判断になるという知見を共有します。 結論 改善パッチによって発生する問題 発生条件 gcc v12.1以降、あるいは改善パッチをバックポートされた任意のバージョンを使ってC++

                        「バグを意図的にバグのまま残す」という選択肢がある
                      • A Modern C Development Environment

                        How Bond Home Built In-House Observability & Why They Switched to Memfault | Wed, October 30th - 9AM PT | 12PM ET | RSVP Sometimes, C/C++ projects have a long development cycle. When working on such a project, it can be easy to take our development environment for granted, and forget about the effort invested in its bring-up. The build environment works like magic, the test framework is neatly int

                          A Modern C Development Environment
                        • WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり

                          80年代、Microsoft製のUNIXが存在していた POSIXサブシステムは2012年までサポートが続いた 現在のWindows 11では、Windows Subsystem for Linux(WSL)が動作するため、(それ自体はUNIXではないものの)UNIXからのアプリケーションを簡単に動作させることができる。 かつてMicrosoftは、x86版UNIXのライセンスを持っており、XENIXと呼ばれる製品を販売していた。また、Windows NTに「POSIXサブシステム」、のちに「Windows Service for UNIX(SFU)」と呼ばれる機能があった。そういうわけで、WindowsとUNIXは切れない“縁”があったのだ。 Windows NTのPOSIXサブシステムやその搭載理由などに関しては、過去記事(「Windows Subsystem for Linuxの中身

                            WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり
                          • 最近のC言語と、次期C標準(C23)

                            C言語といえば古い言語なイメージですが、その重要性はまだまだ落ちていません(多分)。重要な言語だからこそ、今もひっそりと進化を続けています。この記事では、そんなC言語の最近の動向を紹介します。 まずはC言語の前世紀の標準であるC99、現行の標準であるC11/C17を振り返り、その後に未来の標準であるC23に触れます。 C99 C99では色々追加されました。ここでは一部のみの紹介とします。 _Bool _Complex C++の std::complex とメモリ上での互換性がある(C++11以降)。 可変長配列(VLA) 可変長引数マクロ 浮動小数点数の強化 十六進表記 筆者による関連記事:浮動小数点数の16進表記 fma 筆者による関連記事:FMA (fused multiply-add) の話 #pragma STDC FENV_ACCESS, #pragma STDC CX_LIMI

                              最近のC言語と、次期C標準(C23)
                            • C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita

                              これは、 C++ でコンパイル時に出力まで済ませようとした話です。 コンパイラは GCC に限ります。 はじめに もうすぐクリスマスですね! クリスマスにすることといえば……、 そう、コンパイル時処理ですね!! コンパイル時処理 C++ のコンパイル時処理は非常に強力で、様々なことがコンパイル時にできてしまいます。 普通はコンパイル時に決まる定数の計算に使われますが、これを悪用利用してコンパイル時に処理がすべて終わるようなものも書くことができます。 例として、コンパイル時 FizzBuzz を書いてみます。 #include <array> #include <string_view> #include <algorithm> #include <concepts> #include <iostream> template <std::unsigned_integral T> conste

                                C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita
                              • トーバルズ氏、Linuxカーネルを「C89」から「C11」コードに移行する準備

                                Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2022-03-04 11:33 LinuxカーネルがCで記述されているというのは誰もが知るところだ。ただ、そのCがかなり昔のC、すなわち1989年の規格である「C89」だという事実については知らない人もいるかもしれない。C89は「ANSI X3.159-1989」、あるいは「ANSI C」としても知られている。Linus Torvalds氏は、そろそろC89に別れを告げる時だと判断し、Linuxカーネルの公式な開発言語を2011年規格の「C11」に移行しようとしている。 これは見かけほど大きな変更ではない。C89は現在でもほぼ普遍的にサポートされている。どのようなCコンパイラーでも以前の規格との後方互換性を備えているため、C89で記述されたプログラムのコンパイ

                                  トーバルズ氏、Linuxカーネルを「C89」から「C11」コードに移行する準備
                                • C++コンパイラはあなたよりも良いコードを書く - Qiita

                                  最適化 皆さんご存じの通りC++という言語は速度しか取り柄がありません。複雑怪奇な構文、異常量のコンパイルエラー、何が起きるかわからない未定義動作たち、、、それでもなお私たちがC++を使い続けるのは、そう、極めて速いからです。ちょっと前に流行ったD言語や最近流行りのRustが速いという噂ですが、結局ほとんどの場面で速度においてC++に勝ててはいません。個人的な偏見ですがC++のように速度のみを重視し、安全性を捨てない限りRustに未来はないでしょう。まあ、人から聞いた噂によるとRustの標準ライブラリの中身はunsafeなコードが敷き詰められているらしく、なかなか速いようですが。いずれRustが廃れてUnsafe Rustの方が人気が出たりするかもしれませんね。とりあえず、最も速度面で優れている言語はC++といっても過言ではないでしょう。 そして、その圧倒的な速度を支えるのが何といってもC

                                    C++コンパイラはあなたよりも良いコードを書く - Qiita
                                  • bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ

                                    サイボウズ社内ではC++で開発している製品があります。 未知のバッファオーバーランなどの脆弱性への対策として、重要なコンポーネントについてはプロダクション環境で利用しているバイナリでも AddressSanitizer を有効にしてビルドしています。 その製品で利用しているコンパイラをgcc5.3.0からgcc7.5.0に更新したところ性能劣化が発生しました。 製品コードとは別の部分が原因のため、根本原因の追跡が難しそうです。perf,bpftraceを使って性能劣化を追いかけてみましょう。 本記事で利用しているAddressSanitizer, bpftrace, perfコマンドはネット上に良質な記事がありますので、使い方などの解説は今回は省略させていただきます。 gcc7.5.0において、性能劣化が発生する再現コードとして次のようなものを用意しました。 #include <strin

                                      bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ
                                    • 次期C標準 (C23) の内容が固まったらしい

                                      C23については最近のC言語と、次期C標準(C23)でも軽く紹介しました。 今回、C23入りする内容が大体固まったようなので改めて紹介します。 この記事を書いている時点での最新の公開されたWorking Draftは N2912 N3047 N3054 N3096です。ただし、C2y向けの最初のドラフトN3220もあり、そちらの方が実際の内容に近いかもしれません。 内容については会議参加者の投稿も参考にしています: https://twitter.com/rcs/status/1550526425211584512 C23 now finalized! : C_Programming というわけで、C23に入る主な機能はこちらです: C23に入る主な機能 POSIXの機能の取り込み: strdup, strndup, memccpy, gmtime_r, localtime_r C++の機

                                        次期C標準 (C23) の内容が固まったらしい
                                      • MS-DOS(PC-98)のアプリケーションをC言語で作る - 少ないリソースを酷使する

                                        前回の記事でPC-98エミュ+FreeDOSの環境でMS-DOSアプリが動くことを確認した. となると,あと思うことは1つ. MS-DOSのアプリケーションを自作したい! ということです. 今回はC言語でMS-DOSのアプリケーションを作ってみましょう. 環境 OS:Ubuntu 20.04 PC-98エミュ:xnp2kai rev.22 d3fe02a FreeDOS(98):20200709更新のHDI形式 Cコンパイラのinstall i8086版GCC フリーのCコンパイラと言えばGCC.便利ですよね. しかし,少し前までGCCは32bit || 64bitのアーキテクチャしかターゲットにしてきませんでした. なので16bitのPC-98x1向けのバイナリは生成できなかったわけなんですよね. それが最近,ついに16ビット版GCCが登場しました.しかもDOS環境特化. 詳しい話は以下

                                          MS-DOS(PC-98)のアプリケーションをC言語で作る - 少ないリソースを酷使する
                                        • C言語のbitfieldの仕様と実装を調査した話 - /home/tnishinaga/TechMEMO

                                          C言語にはbitfieldという機能がありますが、この機能にはさまざまな落とし穴があり、注意深く利用しても予期せぬバグや移植性の問題を引き起こす可能性があるとよく言われています。 実際、jpcertを確認すると複数の勧告が出ています。 EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない INT12-C. 式中で使用される単なるintのビットフィールドの型について勝手な想定をしない CON32-C. 複数スレッドによる隣接データへのアクセスが必要な場合データ競合を防止する DCL39-C. 信頼境界を越えて構造体を渡すとき情報漏えいしない 私は先輩技術者から「とくに組み込みの分野においてC言語のbitfieldは使うべきではない」と教わって生きてきました。 本記事ではbitfieldの仕様や問題点、なぜ仕様を避けるべきか、緩和策や代替案について検討します。 目次

                                            C言語のbitfieldの仕様と実装を調査した話 - /home/tnishinaga/TechMEMO
                                          • 822823回マクロを展開するとGCCが死ぬ - Qiita

                                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                              822823回マクロを展開するとGCCが死ぬ - Qiita
                                            • mold: modern linker

                                              mold: modern linker Rui Ueyama

                                                mold: modern linker
                                              • The MIR C interpreter and Just-in-Time (JIT) compiler | Red Hat Developer

                                                For the past two years I've worked on a project implementing a universal lightweight Just-in-Time (JIT) compiler known as MIR. The cornerstone of the project is a machine-independent medium-level intermediate representation (MIR). A big part of the project consists of code that compiles C source code into MIR. Because MIR can be interpreted and just-in-timed, I easily extended this C-to-MIR compil

                                                  The MIR C interpreter and Just-in-Time (JIT) compiler | Red Hat Developer
                                                • 2021年6月2日 もうFSFにとらわれない ―GCC運営、FSFへの著作権移譲を開発者に求めないポリシーに | gihyo.jp

                                                  Linux Daily Topics 2021年6月2日もうFSFにとらわれない ―GCC運営、FSFへの著作権移譲を開発者に求めないポリシーに GCCプロジェクトを運営するGCC Steering Committeeは6月1日、GCC 9のポイントリリース「GCC 9.4」の公開に合わせ、GCCの著作権譲渡ポリシーの変更を発表、今後はFree Software Foundation(FSF)への著作権譲渡をコントリビュータに依頼しない方針を明らかにした。GCCをはじめとするGNUプロジェクトへのコントリビュータはこれまで自身が開発したプログラムの著作権をFSFに移譲するよう求められてきたが、GCCに関してはその縛りがなくなることになる。 Update to GCC copyright assignment policy GCC Steering CommitteeメンバーであるDavid

                                                    2021年6月2日 もうFSFにとらわれない ―GCC運営、FSFへの著作権移譲を開発者に求めないポリシーに | gihyo.jp
                                                  • GitHub - Rust-GCC/gccrs: GCC Front-End for Rust

                                                    Please note, the compiler is in a very early stage and not usable yet for compiling real Rust programs. gccrs is a full alternative implementation of the Rust language ontop of GCC with the goal to become fully upstream with the GNU toolchain. The origin of this project was a community effort several years ago where Rust was still at version 0.9; the language was subject to so much change that it

                                                      GitHub - Rust-GCC/gccrs: GCC Front-End for Rust
                                                    • gccの最適化指示-Ofastは危険 - Qiita

                                                      はじめに gccの最適化指示である-Ofastをお気軽に使ってる記事を見掛けたので注意喚起的なやつです。 -Ofastとは何ぞや gccのドキュメントから引用 https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-Ofast -Ofast Disregard strict standards compliance. -Ofast enables all -O3 optimizations. It also enables optimizations that are not valid for all standard-compliant programs. It turns on -ffast-math, -fallow-store-data-races and the Fortran-specific -fstac

                                                        gccの最適化指示-Ofastは危険 - Qiita
                                                      • 最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita

                                                        記事一覧 はじめに マルチパスコンパイラ (この記事) 定数に関する最適化 プログラムの構造 対象読者 コンパイラの内部構造について興味がある方 コンパイラに関して精通している方(批評お待ちしております) ワンパスコンパイラ 突然ですが,初めてコンパイラを作るのであれば,大抵次のような構造になると思います. 図中の赤い部分は,どんなにシンプルなコンパイラでも含まれているだろうという意味を込めたものです.字句解析や中間言語生成はそれぞれ構文解析やコード生成と区別化がつかなくなっている場合もあるかと思います. ここで図中に,一つのパスと書かれているのが気になった方もいるかと思います. パス プログラムのとある表現(ソースコードや中間言語)は,ある操作を施されて別の表現へと移っていきます.この時,ある操作やそれを行うためのルーチン群のことをパスと呼びます. この説明だと,ASTが中間言語へ変換さ

                                                          最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita
                                                        • 2020年8月26日 Linuxカーネル、約2500の&quot;フォールスルー&quot;をリプレース | gihyo.jp

                                                          Linus Torvaldsは8月24日(米国時間⁠)⁠、2020年10月のリリースに向けて開発中の「Linux 5.9」において、カーネルエンジニアのGustavo Silvaの修正パッチをマージした。このパッチではカーネル全体で使われていた2484もの「/* fall through */」および類似のコメント部分をすべて「fallthrough;」にリプレースしているほか、不要なfall-throughの削除も行われている。 Merge tag 'fallthrough-pseudo-keyword-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux -Linux kernel source tree Linuxカーネルのメインライン開発では、今回のパッチを提供したSilvaを中心に、s

                                                            2020年8月26日 Linuxカーネル、約2500の&quot;フォールスルー&quot;をリプレース | gihyo.jp
                                                          • GCC for New Contributors — GCC Contributors Guide 0.1 documentation

                                                            GCC for New Contributors¶ This is an unofficial guide to GCC’s internals, aimed at new developers, and at plugin authors. Source: https://github.com/davidmalcolm/gcc-newbies-guide I’m a relative newcomer to GCC, so I thought it was worth documenting some of the hurdles I ran into when I started working on GCC, to try to make it easier for others to start hacking on GCC. Hence this guide. Other sou

                                                            • Progress toward a GCC-based Rust compiler [LWN.net]

                                                              December 15, 2023 This article was contributed by Ronja Koistinen The gccrs project is an ambitious effort started in 2014 to implement a Rust compiler within The GNU Compiler Collection (GCC). Even though the task is far from complete, progress has been made since LWN's previous coverage, according to reports from the project. Meanwhile, another hybrid and more mature approach to GCC Rust code ge

                                                              • GCC undefined behaviors are getting wild

                                                                Happy with my recent breakthrough in understanding C integer divisions after weeks of struggle, I was minding my own business having fun writing integer arithmetic code. Life was good, when suddenly… zsh: segmentation fault (core dumped). That code wasn't messing with memory much so it was more likely to be a side effect of an arithmetic overflow or something. Using -fsanitize=undefined quickly id

                                                                • 「GCC 10.1」リリース、静的コード解析機能が実験的に導入される | OSDN Magazine

                                                                  The GNU Compiler Collection(GCC)開発チームは5月7日、最新のメジャーリリースとなる「GCC 10.1」公開を発表した。静的コード解析が実験的に導入され、C++20のサポートも強化した。 The GNU Compiler Collection(GCC)はGNUオペレーティングシステム向けのコンパイラとして開発がスタートしたプロジェクトで、 C/C++やObjective-C、Fortran、Ada、Go、Dなどさまざまな言語に対応するフロントエンドとライブラリを提供する。 GCC 10.1は、2019年5月に公開されたGCC 9.1に続くメジャーリリース。この間、プロジェクトはバージョン管理をSubversionからGitに変更している。 C++20のサポートが、コンパイラとlibstdc++ライブラリの両面で強化されている。constexpr関数における評価

                                                                    「GCC 10.1」リリース、静的コード解析機能が実験的に導入される | OSDN Magazine
                                                                  • GCC 12.1 Compiler Released With AVX-512 FP16, Better RISC-V Support, More C++23 Features - Phoronix

                                                                    GCC 12.1 Compiler Released With AVX-512 FP16, Better RISC-V Support, More C++23 Features Written by Michael Larabel in GNU on 6 May 2022 at 06:35 AM EDT. 6 Comments GCC 12.1 is out today as the first stable release of GCC 12. It also marks 35 years already since the release of GCC 1.0. With a year's worth of changes, GCC 12.1 is a big feature release with a lot of good stuff in it from new C/C++ f

                                                                      GCC 12.1 Compiler Released With AVX-512 FP16, Better RISC-V Support, More C++23 Features - Phoronix
                                                                    • AMDが未発表のZen 5アーキテクチャ向けコンパイル機能をGCCに追加

                                                                      オープンソースのコンパイラ「GCC」にAMDが開発中のCPUアーキテクチャ「Zen 5」に関連すると思われるパッチが導入されました。 AMD Zen 5 "Znver5" CPU Enablement Merged For GCC 14 - Phoronix https://www.phoronix.com/news/AMD-Zen-5-Znver5-Merged-GCC14 AMD adds support for Zen 5 to Linux GCC compiler | Tom's Hardware https://www.tomshardware.com/pc-components/cpus/amd-adds-support-for-zen-5-to-linux-gcc-compiler AMDは、2024年2月に「znver5」と呼ばれるプロセッサを対象にしたパッチを提出していま

                                                                        AMDが未発表のZen 5アーキテクチャ向けコンパイル機能をGCCに追加
                                                                      • cc, gcc, g++の違い - kamocyc’s blog

                                                                        C++は初心者なので調べたことをメモ. C++のコンパイルに使うcc, gcc, g++コマンドの違いについて(Ubuntu 18.04) 元ネタ: c++ - Difference between CC, gcc and g++? - Stack Overflow c++ - What is the difference between g++ and gcc? - Stack Overflow まず,gccとg++の違い.これはC用とC++用の違いである. gccは,GNU C Compilerの意味 g++は,GNU C++ Compilerの意味 なお,gccとg++はともにGNU Compiler Collection(Wikipedia)のcompiler-driver(コンパイラを呼び出すプログラム). ただし,実体としては,g++はgccにオプションを追加して呼び出すことと

                                                                          cc, gcc, g++の違い - kamocyc’s blog
                                                                        • リンカのお仕事

                                                                          #include <cstdio> void func(); int main() { func(); } funcという関数のプロトタイプ宣言があり、それをmain関数内で呼び出していますが、実体が定義されていません。これをコンパイルしようとすると、例えばこんなエラーがでます。 $ g++ test.cpp /usr/bin/ld: /tmp/ccFEAPJn.o: in function `main': test.cpp:(.text+0x9): undefined reference to `func()' collect2: error: ld returned 1 exit status エラーメッセージは「funcなんて知らないよ」というものですが、エラーを出しているのは/usr/bin/ldというプログラムです。これは、リンカ(linker)と呼ばれるソフトウェアです。 リン

                                                                            リンカのお仕事
                                                                          • Improvements to static analysis in the GCC 14 compiler | Red Hat Developer

                                                                            I work at Red Hat on GCC, the GNU Compiler Collection. For the last five releases of GCC, I've been working on -fanalyzer, a static analysis pass that tries to identify various problems at compile-time, rather than at runtime. It performs "symbolic execution" of C source code—effectively simulating the behavior of the code along the various possible paths of execution through it. This article summ

                                                                              Improvements to static analysis in the GCC 14 compiler | Red Hat Developer
                                                                            • MinGW-w64のダウンロードとインストール

                                                                              C 言語及び C++ の開発環境として無料で利用可能な MinGW(Minimalist GNU for Windows)をインストールすることで Windows 環境でコンパイラである GCC を利用することができます。ここでは Windows 11 の環境に MinGW-w64 をインストールする方法について解説します。 MinGW-w64をダウンロードする MinGW は 32bit 環境向けのものです。今回は Windows11(64bit) で利用することから 64bit 環境向けのもので MinGW から派生した MinGW-w64 を使用します。 MinGW-w64 のダウンロードを行うには次のURLへアクセスしてください。 ・http://mingw-w64.org/ 画面左側に表示されている「Downloads」をクリックしてください。 ダウンロードに関する画面が表示され

                                                                                MinGW-w64のダウンロードとインストール
                                                                              • GCC 12 Adds Support For Using The Mold Linker - Phoronix

                                                                                GCC 12 Adds Support For Using The Mold Linker Written by Michael Larabel in GNU on 29 December 2021 at 02:47 PM EST. 26 Comments A small but noteworthy change that landed today for the GCC 12 compiler itself is support for using the Mold linker. Released last week was Mold 1.0 as a high-speed linker that can deliver better performance than GNU's old Gold linker and even LLVM's LLD. Mold was design

                                                                                  GCC 12 Adds Support For Using The Mold Linker - Phoronix
                                                                                • Bubble sort slower with -O3 than -O2 with GCC

                                                                                  I made a bubble sort implementation in C, and was testing its performance when I noticed that the -O3 flag made it run even slower than no flags at all! Meanwhile -O2 was making it run a lot faster as expected. Without optimisations: time ./sort 30000 ./sort 30000 1.82s user 0.00s system 99% cpu 1.816 total -O2: time ./sort 30000 ./sort 30000 1.00s user 0.00s system 99% cpu 1.005 total -O3: time .

                                                                                    Bubble sort slower with -O3 than -O2 with GCC

                                                                                  新着記事