Skip Menu |
 

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 36118
Status: stalled
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: stro [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: Line too long under MSWin32
Download (untitled) / with headers
text/plain 2.4k
When trying to compile Glib under MSWin32, I've encountered a problem with Mksymlists: NMAKE : fatal error U1095: expanded command line 'C:\bin\dev\perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'= C:\bin\dev\perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"Glib\", 'DLBASE' => 'Glib', 'DL_FUNCS' => { Glib=>[] }, 'FUNCLIST' => [q[SvGChar], q[SvGKeyFile], q[SvGParamFlags], q[SvGParamSpec], q[SvGSignalFlags], q[_gperl_call_XS], q[gperl_alloc_temp], q[gperl_argv_free], q[gperl_argv_new], q[gperl_argv_update], q[gperl_boxed_package_from_type], q[gperl_boxed_type_from_package], q[gperl_callback_destroy], q[gperl_callback_invoke], q[gperl_callback_new], q[gperl_closure_new], q[gperl_closure_new_with_marshaller], q[gperl_convert_back_enum], q[gperl_convert_back_enum_pass_unknown], q[gperl_convert_back_flags], q[gperl_convert_enum], q[gperl_convert_flag_one], q[gperl_convert_flags], q[gperl_croak_gerror], q[gperl_default_boxed_wrapper_class], q[gperl_filename_from_sv], q[gperl_format_variable_for_output], q[gperl_fundamental_package_from_type], q[gperl_fundamental_type_from_package], q[gperl_gerror_from_sv], q[gperl_get_boxed_check], q[gperl_get_object], q[gperl_get_object_check], q[gperl_handle_logs_for], q[gperl_install_exception_handler], q[gperl_new_boxed], q[gperl_new_boxed_copy], q[gperl_new_object], q[gperl_object_check_type], q[gperl_object_package_from_type], q[gperl_object_set_no_warn_unreg_subclass], q[gperl_object_stash_from_type], q[gperl_object_type_from_package], q[gperl_package_from_type], q[gperl_param_spec_package_from_type], q[gperl_prepend_isa], q[gperl_register_boxed], q[gperl_register_error_domain], q[gperl_register_fundamental], q[gperl_register_object], q[gperl_register_sink_func], q[gperl_remove_exception_handler], q[gperl_run_exception_handlers], q[gperl_set_isa], q[gperl_signal_connect], q[gperl_signal_set_marshaller_for], q[gperl_str_eq], q[gperl_str_hash], q[gperl_sv_copy], q[gperl_sv_is_defined], q[gperl_sv_free], q[gperl_sv_from_filename], q[gperl_sv_from_gerror], q[gperl_sv_from_value], q[gperl_sv_get_type], q[gperl_try_convert_enum], q[gperl_try_convert_flag], q[gperl_type_class], q[gperl_type_from_package], q[gperl_value_from_sv], q[newSVGChar], q[newSVGParamFlags], q[newSVGParamSpec], q[newSVGSignalFlags], q[newSVGSignalInvocationHint], q[newSVGSignalQuery]], 'IMPORTS' => { }, 'DL_VARS' => []);"' too long Stop. It would be very good to have this list passed via file to avoid such problems. -- Serguei Trouchelle
From: stro [...] railways.dp.ua
Download (untitled) / with headers
text/plain 103b
Here's a patch that I made for MM_Win32.pm and Mksymlists.pm to implement passing parameters via file.
Download MM_Win32.pm.diff
text/x-diff 755b
55a56,75 > > my @funclist; > if (length neatvalue($funclist) > 128) { > # Use FUNCLIST_FILE > if (open FUNCLIST_FILE, '>Makefile.FNL') { > foreach (@$funclist) { > print FUNCLIST_FILE $_, "\n"; > } > @funclist = (q!, 'FUNCLIST_FILE' => 'Makefile.FNL' !); > close FUNCLIST_FILE; > } else { > # Fallback to FUNCLIST > @funclist = (q!, 'FUNCLIST' => !,neatvalue($funclist),); > } > } else { > # Use FUNCLIST > @funclist = (q!, 'FUNCLIST' => !,neatvalue($funclist),); > } > > 67c87 < q!, 'FUNCLIST' => !,neatvalue($funclist), --- > @funclist,
Download Mksymlists.pm.diff
text/x-diff 545b
21c21 < ($spec{FILE} and ($spec{DL_FUNCS} or $spec{FUNCLIST})) ); --- > ($spec{FILE} and ($spec{DL_FUNCS} or $spec{FUNCLIST} or $spec{'FUNCLIST_FILE'})) ); 25a26,36 > if ($spec{'FUNCLIST_FILE'}) { > if (open FUNCLIST_FILE, '<' . $spec{'FUNCLIST_FILE'}) { > while (<FUNCLIST_FILE>) { > chomp; > push @{$spec{'FUNCLIST'}}, $_; > } > close FUNCLIST_FILE; > } else { > croak "Cannot open FUNCLIST_FILE: $!\n"; > } > }
Download (untitled) / with headers
text/plain 336b
Hmm. I'm not happy with the idea that a temp file is generated at Makefile.PL time and never cleaned up. Change it so the work is done in the $self->{BASEEXT}.def target. Make use of echo() and split_command() to write out the file in pieces. Then have Mksymlists() read the file like you do now. After that, delete the temp file.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.