1. Internal Compiler Error (ICE) 対策
icon-o-matic/transformable/TransformBox.cpp で、Internal Compiler Error が出るので、#Pragma で最適化をオフにします。
--- a/src/apps/icon-o-matic/transformable/TransformBox.cpp2. 起動時クラッシュ対策
+++ b/src/apps/icon-o-matic/transformable/TransformBox.cpp
@@ -508,6 +508,10 @@ TransformBox::RemoveListener(TransformBoxListener* listener)
// TODO: why another version?
// point_line_dist
+#if __GNUC__ == 6
+#pragma GCC push_options
+#pragma GCC optimize ("O0")
+#endif
float
point_line_dist(BPoint start, BPoint end, BPoint p, float radius)
{
@@ -521,7 +525,9 @@ point_line_dist(BPoint start, BPoint end, BPoint p, float radius)
return min_c(point_point_distance(start, p), point_point_distance(end, p));
}
-
+#if __GNUC__ == 6
+#pragma GCC pop_options
+#endif
// _DragStateFor
パッチを当て終えると、gcc 6.1.0 でビルドできるようになりますが、OS 起動時に落ちてしまいます。カーネルのフラグに -fno-delete-null-pointer-checks を足すととりあえず実行できるようです。
--- a/build/jam/ArchitectureRules
+++ b/build/jam/ArchitectureRules
@@ -366,6 +366,11 @@ rule KernelArchitectureSetup architecture
HAIKU_KERNEL_C++FLAGS += -std=gnu++11 ;
}
+ if $(gccVersion[1]) >= 6 {
+ HAIKU_KERNEL_C++FLAGS += -fno-delete-null-pointer-checks ;
+ HAIKU_KERNEL_CCFLAGS += -fno-delete-null-pointer-checks ;
+ }
+
HAIKU_KERNEL_PIC_CCFLAGS = -fno-pic ;
HAIKU_KERNEL_PIC_LINKFLAGS = ;
以上で、gcc 6.1.0 での Haiku ビルド、実行ができると思います。お楽しみください。
In English (short)
Build Haiku with gcc 6.1.0
- Apply gcc6 patches in trac.
- icon-o-matic/transformable/TransformBox.cpp: fix ICE with #pragma.
- Add -fno-delete-null-pointer-checks to kernel to fix crash at startup.
0 件のコメント:
コメントを投稿