Discussion:
[PATCH] add ldd/otool output to bug reports
Randy Kobes
2005-09-09 15:12:58 UTC
Permalink
For both mp2bug and A-T
Question, why does A-T call it OSX and mp2 call it DARWIN ... should we sync
one way or the other ?
Index: lib/ModPerl/Config.pm
===================================================================
--- lib/ModPerl/Config.pm (revision 279736)
+++ lib/ModPerl/Config.pm (working copy)
@@ -18,9 +18,11 @@
use Apache2::Build ();
use Apache::TestConfig ();
+use Apache::TestConfigData ();
use File::Spec ();
use constant WIN32 => Apache2::Build::WIN32;
+use constant DARWIN => Apache2::Build::WIN32;
sub as_string {
my $build = Apache2::Build->build_config;
@@ -53,8 +55,19 @@
$command = "$httpd -V";
$cfg .= "\n\n*** $command\n";
$cfg .= qx{$command};
- }
- else {
+
+ # Add the dynamic link information
+ # For now, assume its in our path... its there a better way ?
+ if (DARWIN) {
+ $command = "otool $httpd";
+ }
+ else {
+ $command = "ldd $httpd";
+ }
+
+ $cfg .= "\n*** $command\n";
+ $cfg .= qx{$command};
+ } else {
$cfg .= "\n\n*** The httpd binary was not found\n";
}
Index: Apache-Test/lib/Apache/TestConfig.pm
===================================================================
--- Apache-Test/lib/Apache/TestConfig.pm (revision 279734)
+++ Apache-Test/lib/Apache/TestConfig.pm (working copy)
@@ -1837,7 +1837,19 @@
$command = "$httpd -V";
$cfg .= "\n*** $command\n";
$cfg .= qx{$command};
- }
+
+ # Add the dynamic link information
+ # For now, assume its in our path... its there a better way ?
+ if (OSX) {
+ $command = "otool $httpd";
+ }
+ else {
+ $command = "ldd $httpd";
+ }
+
+ $cfg .= "\n*** $command\n";
+ $cfg .= qx{$command};
+ }
else {
$cfg .= "\n\n*** The httpd binary was not found\n";
}
If this point was reached, it would break Win32, plus
any other system which didn't have an ldd in the PATH.
Perhaps Apache::TestConfig::which() could be used to
see if an ldd() [or otool()] is present, and skip this
part if it's not found?
--
best regards,
randy
Philip M. Gollucci
2005-09-12 05:36:59 UTC
Permalink
Post by Randy Kobes
If this point was reached, it would break Win32, plus
any other system which didn't have an ldd in the PATH.
Perhaps Apache::TestConfig::which() could be used to
see if an ldd() [or otool()] is present, and skip this
part if it's not found?
I guess qx{} is different on win32 ?
Take from example on my FBSD box which does not have 'otool'

% perl -e 'my $command = "otool -L /bin/ls"; qx{$command}; print "\ndone.\n"'

done.

I don't think it matters, but at rate, Apache::TestConfig::which() will better find ldd/otool.
Does win32 have an equivalent? Also, I fixed the DARWIN constant from the previous patch.

If this looks good, I'll make similar for A-T and apply both.

***@pgollucci.internal.liquidation.com /home/pgollucci/dev/repos/asf/perl/modperl/trunk rv=0 142 >svn diff
lib/ModPerl/Config.pm
Index: lib/ModPerl/Config.pm
===================================================================
--- lib/ModPerl/Config.pm (revision 279773)
+++ lib/ModPerl/Config.pm (working copy)
@@ -21,6 +21,7 @@
use File::Spec ();

use constant WIN32 => Apache2::Build::WIN32;
+use constant DARWIN => Apache2::Build::DARWIN;

sub as_string {
my $build = Apache2::Build->build_config;
@@ -53,6 +54,22 @@
$command = "$httpd -V";
$cfg .= "\n\n*** $command\n";
$cfg .= qx{$command};
+
+ my $command;
+
+ if (DARWIN) {
+ my $otool = Apache::TestConfig::which('otool');
+ $command = " -L $otool" if $otool;
+ }
+ elsif (!WIN32) {
+ my $ldd = Apache::TestConfig::which('ldd');
+ $command = "$ldd $httpd" if $ldd;
+ }
+
+ if ($command) {
+ $cfg .= "\n*** $command\n";
+ $cfg .= qx{$command};
+ }
}
else {
$cfg .= "\n\n*** The httpd binary was not found\n";
--
END
------------------------------------------------------------
What doesn't kill us can only make us stronger.
Nothing is impossible.

Philip M. Gollucci (***@p6m7g8.com) 301.254.5198
Consultant / http://p6m7g8.net/Resume/
Senior Developer / Liquidity Services, Inc.
http://www.liquidityservicesinc.com
http://www.liquidation.com
http://www.uksurplus.com
http://www.govliquidation.com
http://www.gowholesale.com
Randy Kobes
2005-09-12 14:08:59 UTC
Permalink
Post by Philip M. Gollucci
Post by Randy Kobes
If this point was reached, it would break Win32, plus
any other system which didn't have an ldd in the PATH.
Perhaps Apache::TestConfig::which() could be used to
see if an ldd() [or otool()] is present, and skip this
part if it's not found?
I guess qx{} is different on win32 ?
Take from example on my FBSD box which does not have 'otool'
% perl -e 'my $command = "otool -L /bin/ls"; qx{$command}; print "\ndone.\n"'
done.
I don't think it matters, but at rate, Apache::TestConfig::which() will
better find ldd/otool.
I think the use of which() is better - what would have
happened before is that a message:
'ldd' is not recognized as an internal or external
command, operable program, or batch file.
would appear with Win32, which would be confusing.
Post by Philip M. Gollucci
Does win32 have an equivalent?
There are utilities on Win32 that give extra information
like this; I'll take a look later at them to see which
might be useful. But for now, I'd suggest doing it without
Win32, as you have it. Thanks.
--
best regards,
randy
Loading...