Opened 4 years ago

Closed 4 years ago

#12162 closed bug (no change required)

Hybrid build failure on Haiku

Reported by: haiqu Owned by: bonefish
Priority: normal Milestone: Unscheduled
Component: Build System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by pulkomandy)

C++ /Work/generated/objects/haiku/x86_gcc2/release/system/boot/platform/bios_ia32/mmu.o 
C++ /Work/generated/objects/haiku/x86_gcc2/release/system/boot/platform/bios_ia32/long.o 
/Work/haiku/src/system/boot/platform/bios_ia32/mmu.cpp: In function `void mmu_init_for_kernel()':
/Work/haiku/src/system/boot/platform/bios_ia32/mmu.cpp:549: implicit declaration of function `int STATIC_ASSERT(...)'
/Work/haiku/src/system/boot/platform/bios_ia32/long.cpp: In function `void long_gdt_init()':
/Work/haiku/src/system/boot/platform/bios_ia32/long.cpp:68: implicit declaration of function `int STATIC_ASSERT(...)'

I have no problem with either a pure X86 or X86_64 build.

Attachments (3)

debug.h (709 bytes ) - added by haiqu 4 years ago.
Replacement debug.h
buildlog.txt (16.5 KB ) - added by haiqu 4 years ago.
Tail of the build log
boomcrash.txt (13.0 KB ) - added by haiqu 4 years ago.
More stuff

Download all attachments as: .zip

Change History (15)

comment:1 by haiqu, 4 years ago

Also noted is this code hasn't changed in years so something else has happened ...

... and I did delete all objects first, to ensure no corrupted files were included.

comment:2 by haiqu, 4 years ago

Ah, also I'm on hrev49271 presently.

comment:3 by pulkomandy, 4 years ago

Description: modified (diff)

comment:4 by haiqu, 4 years ago

Fixed it.

Add STATIC_ASSERT macro to src/system/boot/platform/bios_ia32/debug.h Add kprintf prototype to src/system/boot/platform/bios_ia32/debug.h

It's now failing in the disk manager but at least we have progress.

File attached.

by haiqu, 4 years ago

Attachment: debug.h added

Replacement debug.h

comment:5 by haiqu, 4 years ago

Still failing as of 3 July.

Last edited 4 years ago by haiqu (previous) (diff)

comment:6 by waddlesplash, 4 years ago

Please attach a build log.

by haiqu, 4 years ago

Attachment: buildlog.txt added

Tail of the build log

comment:7 by bonefish, 4 years ago

hrev49368 should fix the issue from your build log.

As for the STATIC_ASSERT issue: The macro is defined in headers/private/kernel/debug.h. The header should be included indirectly by src/system/boot/platform/bios_ia32/mmu.cpp via the chain

  • headers/private/kernel/boot/platform.h
  • headers/private/kernel/boot/vfs.h
  • headers/private/kernel/util/DoublyLinkedList.h
  • headers/private/kernel/debug.h

I could imagine that for some reason src/system/boot/platform/bios_ia32/debug.h is favored over headers/private/kernel/debug.h. The build log and the pre-processed output (i.e. run the failing command line manually, but replace -c with -E and adjust the name of the output file) would be helpful.

comment:8 by haiqu, 4 years ago

I tried including kernel/debug.h manually before making the initial report and it came up with a slew of other errors, it was cleaner to add the STATIC_ASSERT locally.

New crash report attached.

by haiqu, 4 years ago

Attachment: boomcrash.txt added

More stuff

comment:9 by haiqu, 4 years ago

On hrev49367 with current sources.

Mollom is a bloody nuisance.

comment:10 by bonefish, 4 years ago

The command line shows the problem: -iquote appears instead of the correct includes separator for gcc 2 -I-. How that mix-up can happen is a bit puzzling, since -iquote is only used es the local includes prefix for gcc 4. So it not only is for a different packaging architecture, but also a different variable. Moreover all this works correctly when cross-building.

Please attach your BuildConfig file. Some debug output would be nice too. Please insert:

To get the debug output, you don't have to build anything; jam -q nothing should suffice.

comment:11 by haiqu, 4 years ago

That was it!!

I changed build/jam/HelperRules weeks ago to "get rid of an annoying warning" and even tested the build afterwards. What I evidently didn't do was jam clean first.

Call me Freddie Footbullet. I'll be more careful of the GCC2 requirements in future.

Thanks, solved.

comment:12 by pulkomandy, 4 years ago

Resolution: no change required
Status: newclosed
Note: See TracTickets for help on using tickets.