Ticket #1202 (new bug)

Opened 5 years ago

Last modified 4 years ago

build - header file detection w/o perl5

Reported by: jhoblitt@… Owned by:
Priority: normal Milestone:
Component: configure Version:
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

auto::headers uses the Config module to detect installed header files. It's ok to get default values and the arch name from Config but it's not OK to depend on it for probing the system as the Configure code will liked be compiled down to PIR someday so it can be executed by miniparrot and systems that don't have perl5 installed.

Change History

  Changed 5 years ago by coke

follow-up: ↓ 3   Changed 5 years ago by coke

Comment from kid51:

We've long recognized that we will eventually have to jettison our reliance on Perl 5's Config module, not just for header detection but for all of our configuration probes. But that's a post-1.0 project.

In the meantime, since the OP we have added some functionality to config/auto/headers.pm to compensate for Config's limitations. See for example this comment:

sub _list_extra_headers { my $conf = shift; # some headers may not be probed-for by perl 5, or might not be # properly reflected in %Config (i_fcntl seems to be wrong on my machine, # for instance).

in reply to: ↑ 2   Changed 5 years ago by jkeenan

Replying to coke:

Comment from kid51:

For future reference: The impact of Perl 5's %Config in this module has been confined to this internal subroutine:

 74 sub _set_from_Config {
 75     my $conf = shift;
 76     # Perl 5's Configure system doesn't call this by its full name, which ma    y
 77     # confuse use later, particularly once we break free and start doing all
 78     # probing ourselves
 79     my %mapping = ( i_niin => "i_netinetin" );
 80 
 81     for ( grep { /^i_/ } $conf->data->keys_p5() ) {
 82         $conf->data->set( $mapping{$_} || $_ => $conf->data->get_p5($_) );
 83     }
 84 }

  Changed 4 years ago by jkeenan

Related tickets: TT #1044; TT #619.

Note: See TracTickets for help on using tickets.