Opened 7 years ago
Closed 6 years ago
#14166 closed bug (fixed)
Building haiku_loader.efi on haiku x86_64 fails in video.o
Reported by: | taos | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | - General | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
I'm using haiku x86_64 hrev51977 in VirtualBox.
Building haiku_loader.efi with HAIKU_BOOT_PLATFORM=efi jam -q haiku_loader.efi
fails in objects/haiku/x86_64/release/system/boot/platform/efi/efi/video.o
Terminal output is attached.
Attachments (1)
Change History (4)
by , 7 years ago
Attachment: | Terminal output.txt added |
---|
follow-up: 2 comment:1 by , 7 years ago
Try to replace with:
uint32 diff = 2 * abs((int32)mode->width - width) + abs((int32)mode->height - height) + abs((int32)mode->bits_per_pixel - depth);
comment:2 by , 6 years ago
Replying to korli:
Try to replace with:
uint32 diff = 2 * abs((int32)mode->width - width) + abs((int32)mode->height - height) + abs((int32)mode->bits_per_pixel - depth);
Doesn't work:
C++ /Hub/haiku/generated/objects/haiku/x86_64/release/system/boot/platform/efi/efi/video.o src/system/boot/platform/efi/video.cpp: In function 'video_mode* closest_video_mode(uint32, uint32, uint32)': src/system/boot/platform/efi/video.cpp:97:51: error: call of overloaded 'abs(uint32)' is ambiguous uint32 diff = 2 * abs((int32)mode->width - width) + abs((int32)mode->height - height)
With the following modification (no idea if this makes sense) the build proceeds a little further:
uint32 diff = 2 * abs(int32(mode->width - width)) + abs(int32(mode->height - height)) + abs(int32(mode->bits_per_pixel - depth));
And then stops with:
C++ /Hub/haiku/generated/objects/haiku/x86_64/release/system/boot/arch/x86/efi/arch_string.o /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp: In instantiation of 'constexpr {anonymous}::GenerateTable<Generator, 0, Index ...>::GenerateTable() [with Generator = {anonymous}::SSEGenerator; unsigned int ...Index = {0, 1, 2, 3}]': /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp:19:8: required from here /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp:29:2: error: ignoring attributes on template argument 'void (* const)(__m128i*, const __m128i*) {aka void (* const)(__vector(2) long long int*, const __vector(2) long long int*)}' [-Werror=ignored-attributes] } ^ /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp: In constructor 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 2, 2, 3>::GenerateTable()': /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp:19:8: note: synthesized method 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 1, 1, 2, 3>::GenerateTable()' first required here struct GenerateTable : GenerateTable<Generator, N - 1, N - 1, Index...> { ^~~~~~~~~~~~~ /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp: In constructor 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 3, 3>::GenerateTable()': /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp:19:8: note: synthesized method 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 2, 2, 3>::GenerateTable()' first required here /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp: In constructor 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 4>::GenerateTable()': /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp:19:8: note: synthesized method 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 3, 3>::GenerateTable()' first required here /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp: At global scope: /Hub/haiku/src/system/libroot/posix/string/arch/x86_64/arch_string.cpp:98:49: note: synthesized method 'constexpr {anonymous}::GenerateTable<{anonymous}::SSEGenerator, 4>::GenerateTable()' first required here constexpr static GenerateTable<SSEGenerator, 4> table_sse; ^~~~~~~~~ cc1plus: all warnings being treated as errors
Note:
See TracTickets
for help on using tickets.
Terminal output during build of haiku_loader.efi