Ticket #865 (closed bug: fixed)

Opened 5 years ago

Last modified 4 years ago

extra .pmc files in src/pmc cause silent pbc compatibility breaks

Reported by: cotto Owned by: cotto
Priority: normal Milestone:
Component: build Version: 1.3.0
Severity: medium Keywords: pmc2c, makefile
Cc: Language:
Patch status: applied Platform:

Description

In TT #823, Coke experienced some mysterious test failures because he had a stray .pmc file in src/pmc. This PMC was silently built into Parrot even though it wasn't in MANIFEST and didn't belong.

A solution to this behavior is to have the generated Makefile explicitly list all PMCs rather than using the suffix rules (see config/gen/makefiles/root.in +655). Alternately, a big noisy warning when there are PMCs not listed in MANIFEST would be sufficient. The idea is that it should be hard for a user or developer to unknowingly build Parrot with extra PMCs

Change History

  Changed 4 years ago by coke

  • component changed from pmc2c to build

in reply to: ↑ description   Changed 4 years ago by jkeenan

Replying to cotto:

I started to look into this issue this weekend and committed some updates to config/auto/pmc.pm and its associated test file which may help to clear away the underbrush impeding a solution.

My hunch is that the problem is rooted in the fact that the only quasi-canonical list of PMCs apart from MANIFEST is found in src/pmc/pmc.num. That file provides a mapping of PMCs to incremental sequence numbers (but also includes mappings for long-since-deleted PMCs. If you call touch src/pmc/myphony.pmc, you will vary quickly get uninitialized value warnings and outright failures during perl Configure.pl. But I suspect that if have a well-formed PMC file there which is listed neither in src/pmc/pmc.num nor MANIFEST, it could sneak into a Parrot build.

kid51

in reply to: ↑ description   Changed 4 years ago by jkeenan

  • patch set to applied

Replying to cotto:

Alternately, a big noisy warning when there are PMCs not listed in MANIFEST would be sufficient. The idea is that it should be hard for a user or developer to unknowingly build Parrot with extra PMCs

cotto,

Can you review r48598? It should provide the warnings you suggested.

Thank you very much.

kid51

  Changed 4 years ago by cotto

  • status changed from new to closed
  • resolution set to fixed

kin51, thanks for adding this. An extraneous PMC added before configure-time will cause a noisy (though non-fatal) warning and a PMC added will be properly ignored. I'll mark this fixed.

Note: See TracTickets for help on using tickets.