Opened 2 years ago

Closed 13 months ago

#17965 closed bug (fixed)

Private kernel headers include generated file without dependency

Reported by: dominicm Owned by: nobody
Priority: low Milestone: R1/beta5
Component: Build System Version:
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

In headers/private/kernel/kernel_c++_structs.h the generated kernel_c++_struct_sizes.h is included without a dependency.

This happens to work in Jam, but breaks in Ham.

Fixing this is tricky because the private kernel headers are included wholesale via UsePrivateKernelHeaders (which in turn uses SUBDIR mechanisms) rather than being depended on directly.

Manually tracking down files that consume kernel_c++_structs.h technically works, but is very hacky. Probably the best solution is to extend the SUBDIR mechanism to allow folder-wide dependencies.

Because this only actually causes a build failure in Ham I can just modify Ham's Jambase, but this is still technically incorrect with Jam and it's possible there is already a mechanism for this I don't know about, so info is welcome.

Change History (3)

comment:1 by korli, 2 years ago

Looks like what was mentioned in the commit https://cgit.haiku-os.org/haiku/commit/?id=fc7864091e2463c0e446f8b3954df4d29e9465af and used in https://cgit.haiku-os.org/haiku/commit/?id=ac3566cd6afe41e874e3fe1f3b60cbe898735fd4

kernel_c++_structs.h is ATM only used by the freebsd_network compat layer.

in reply to:  1 comment:2 by dominicm, 2 years ago

Replying to korli:

Looks like what was mentioned in the commit https://cgit.haiku-os.org/haiku/commit/?id=fc7864091e2463c0e446f8b3954df4d29e9465af and used in https://cgit.haiku-os.org/haiku/commit/?id=ac3566cd6afe41e874e3fe1f3b60cbe898735fd4

kernel_c++_structs.h is ATM only used by the freebsd_network compat layer.

Good catch; if it's already known and has limited scope I'll probably just add the dependencies manually.

In this case it looks like I just need to explicitly add an Includes dependency from condvar to kernel_c++_structs.h

Last edited 2 years ago by dominicm (previous) (diff)

comment:3 by waddlesplash, 13 months ago

Milestone: UnscheduledR1/beta5
Resolution: fixed
Status: newclosed

Fixed in hrev57319 by getting rid of the need for this file altogether and then removing the mechanism.

Note: See TracTickets for help on using tickets.