2021/05/07

GCC11 の巻

extrowerk さんが gcc11 のパッチを作成されたので、早速試してみました。ただ、gcc10 までのバージョンと異なり、本バージョンでの Haiku ビルドはかなり難しそうです。

これは、} cpu_ent CACHE_LINE_ALIGN; から、CACHE_LINE_ALIGNを取ってしまえばいいのかな?

 ../headers/private/kernel/cpu.h:91:21: error: size of array element is not a multiple of its alignment
   91 | extern cpu_ent gCPU[];

headers/compatibility/bsd が動作しない (bsd/features.h で _DEFAULT_SOURCE が定義されない)。どうすれば、_DEFAULT_SOURCE が定義されるようになるのだろう?

一番わからないのがこれかな。なんで添字がオーバーするんだろう? 計算上はオーバーしないはず。

In file included from ../src/add-ons/kernel/file_systems/userlandfs/server/beos/../FileSystem.h:14,
                 from ../src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h:6,
                 from ../src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp:3:
../headers/private/userlandfs/private/FSCapabilities.h: In member function 'void UserlandFS::BeOSKernelFileSystem::_InitCapabilities()':
../headers/private/userlandfs/private/FSCapabilities.h:188:46: warning: array subscript 3 is above array bounds of 'uint8 [3]' {aka 'unsigned char [3]'} [-Warray-bounds]
  188 |                 capabilities[capability / 8] |= flag;
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../headers/private/userlandfs/private/FSCapabilities.h:151:57: note: while referencing 'UserlandFSUtil::FSCapabilitiesBase<21>::capabilities'
  151 |                         uint8                           capabilities[(CapabilityCount + 7) / 8];
      |                                                         ^~~~~~~~~~~~

まぁこれまでの履歴からいっても、Haiku の次期標準コンパイラは gcc11 でなく gcc9 でしょうが、最新のコンパイラが使えるというのは良いアピールポイントになると思います。


0 件のコメント:

コメントを投稿