コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2006年12月17日 >>> 2006年12月17日
link もっと後

2006年12月17日

glibcお前もビルドできないのか

目次: C言語とlibc

昨日の日記の繰り返しになりますが、私がやりたいのは、変なオプション付けてglibcをビルドすることです。
いきなりやると大抵うまくいかないので、初めに何も付けずにビルドしました。簡単な修正が必要ですが、特に問題なく成功しました。

あとはオプション変えるだけだと思ったら、やっぱダメでした。下のメッセージのように、最適化を外すなって怒られます。

$ make
(...snip...)
/tmp/build/glibc-2.3.2/config.h:3:3: #error "glibc cannot be compiled without optimization"

そういえば以前、hdk氏より「Linuxカーネル(12/18訂正:カーネル -> Linuxカーネル)は最適化をoffにするとコンパイルできない」と教えてもらたっけなあ。
今日になって同じような現象に出会うとは、夢にも思いませんでしたよ。

ビルドメモ

まずapt-get source glibcとして、取ってきたglibc_2.3.2.ds1.orig.tar.gzを展開すると、glibc-2.3.2.tar.bz2とglibc-linuxthreads-2.3.2.tar.bz2が出てくるので、それらを展開します。

そして、Zaurus Cross さんにあるglibc-2.3.2向けのバグフィクスパッチを当てます。
こういう素晴らしいお仕事してくれる方がいるから、ほんと助かります…。


# ソース取ってくる
$ apt-get source glibc
$ tar -xzvf glibc_2.3.2.ds1.orig.tar.gz

# 展開、linuxthreadsアドオンだっけ?それも展開
$ tar -xjvf glibc-2.3.2.tar.bz2
$ cd glibc-2.3.2
$ cp ../glibc-linuxthreads-2.3.2.tar.bz2 ./
$ tar -xjvf glibc-linuxthreads-2.3.2.tar.bz2

# パッチ当て
$ patch -p1 < glibc-2.3.2-arm.patch

# さらに修正必要、修正内容については後ろの方に載ってます
(修正)

# ビルド用のディレクトリに移動
$ cd ../
$ mkdir build
$ cd build

# こんふぃぎゃー
# カーネルヘッダは適したものを使ってください
$ ../glibc-2.3.2/configure --prefix=/home/username/usr/local/arm --target=arm-linux \
--enable-shared --enable-add-ons --enable-kernel=2.4.x \
--host=arm-linux --with-headers=/home/username/usr/src/linux-2.4.x/include

# ビルド、インストール
$ make
$ make install

ちなみにglibcのコンパイルも含めて、Zaurus Crossさんが超くわしいので、そちら見た方がためになります。

修正箇所

コンパイル通らないと困るので晒しておきます。
初めはglibc-2.3.2/include/libc-symbols.hの @nobitsを削ってたんですが、ググったら %nobitsにすればいいよ、ってのがあったので直しました。


--- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.orig       2003-02-21 07:22:24.000000000 +0900
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c    2006-12-17 23:21:42.000000000 +0900
@@ -47,6 +47,8 @@
 #include <asm/page.h>
 #include <sys/sysctl.h>
 
+#include <linux/input.h>
+
 #define PATH_ARM_SYSTYPE       "/etc/arm_systype"
 #define PATH_CPUINFO           "/proc/cpuinfo"
--- glibc-2.3.2/include/libc-symbols.h.orig     2003-01-04 08:21:03.000000000 +0900
+++ glibc-2.3.2/include/libc-symbols.h  2006-12-17 23:21:01.000000000 +0900
@@ -247,7 +247,7 @@
     __attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \r     = msg;
 #  define libc_freeres_ptr(decl) \r-  __make_section_unallocated ("__libc_freeres_ptrs, "aw", @nobits") \r+  __make_section_unallocated ("__libc_freeres_ptrs, "aw", %nobits") \r   decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
 #  define __libc_freeres_fn_section \r   __attribute__ ((section ("__libc_freeres_fn")))
編集者:すずき(2023/04/29 21:46)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2006年12月17日 >>> 2006年12月17日
link もっと後

管理用メニュー

link 記事を新規作成

<2006>
<<<12>>>
-----12
3456789
10111213141516
17181920212223
24252627282930
31------

最近のコメント20件

  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」
  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」
  • link 24年1月24日
    KKKさん (02/19 02:30)
    「追伸です。\nネットで調べたらマイクロソ...」
  • link 24年1月24日
    KKKさん (02/19 02:25)
    「私もエラーで困ってます\n手動での回復パ...」
  • link 24年1月24日
    すずきさん (02/13 11:48)
    「ありがとうございます。\n私のPCはもう...」
  • link 24年1月24日
    えはらさん (02/12 15:00)
    「Powershellのスクリプトは以下の...」
  • link 24年2月2日
    すずきさん (02/02 18:17)
    「サーバー側の設定はとても簡単でした。ちょ...」
  • link 24年2月2日
    hdkさん (02/02 08:54)
    「さくらのレンタルサーバの設定でLet's...」
  • link 24年1月24日
    すずきさん (01/28 11:35)
    「ご指摘ありがとうございます。確かに間違っ...」
  • link 24年1月24日
    通りすがりさん (01/27 14:05)
    「Powershellで解決しなかったのは...」
  • link 23年11月29日
    すずきさん (12/04 00:38)
    「あ、そうか。1nsですね。ありがとうござ...」
  • link 23年11月29日
    hdkさん (12/03 18:49)
    「>(本来1usなのに1msになって...」
  • link 23年11月29日
    すずきさん (12/03 00:35)
    「大山先生、お久しぶりです。コメントありが...」
  • link 23年11月29日
    大山恵弘さん (12/02 18:53)
    「すずきさんのX(旧Twitter)へのポ...」
  • link 20年7月12日
    すずきさん (10/19 11:17)
    「ご指摘ありがとうございます。9月の編集は...」
  • link 20年7月12日
    通り縋りさん (10/18 19:08)
    「上の記事2023年9月編集という事ですが...」
  • link 23年9月22日
    すずきさん (09/23 21:14)
    「そうなんですよ。賢いなーと思って自分でも...」

最近の記事3件

  • link 24年4月17日
    すずき (04/18 22:44)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
  • link 23年4月10日
    すずき (04/18 22:30)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linuxのstruct pageって何?Linu...」
  • link 20年2月22日
    すずき (04/17 02:22)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/18 22:44