Today I attempted to build and install a perl built with
AddressSanitizer on FreeBSD-12. I configured by adding the following 3
switches to a standard ./Configure invocation:
#####
-Accflags='-fsanitize=address'
-Aldflags='-fsanitize=address'
-Alddflags='-fsanitize=address'
#####
'make' completed successfully, leading to the following value for
'config_args':
#####
$ ./perl -Ilib -V:config_args
config_args='-des -Dusedevel -Accflags='-fsanitize=address'
-Aldflags='-fsanitize=address' -Alddflags='-fsanitize=address'
-Dprefix=/home/jkeenan/testing/v5.35.1 -Uversiononly -Dman1dir=none
-Dman3dir=none';
'make' was actually invoked via 'make install':
#####
make -j8 install
#####
... so after 'make' itself completed, installation began. However,
every time I tried this, the underlying 'installperl' process stalled,
usually about here:
#####
...
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/amd64-freebsd/Filter/Util/Call.pm
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/Module/Load.pm
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/Module/Loaded.pm
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/Module/CoreList.pm
[hang]
#####
I called 'ps' to try to find out what was going on.
#####
$ ps auxwww | ack '(^USER.*VSZ|installperl)'
USER PID %CPU %MEM VSZ RSS TT STAT STARTED
TIME COMMAND
jkeenan 59025 100.0 2.9 21474917848 239388 0 R 23:46
1:05.03 ./perl -Ilib -I. installperl --destdir=
jkeenan 59793 0.0 0.1 11048 5016 2 R+ 23:47
0:00.00 /usr/local/bin/perl /usr/local/bin/ack (^USER.*VSZ|installperl)
#####
I'm not very surprised that 'installperl' was using 100% of CPU. There
was nothing much else happening on the machine at that point, so why
shouldn't all of CPU be devoted to this task.
The high values for 'VSZ' and 'RSS' look suspicious, but I don't have
the expertise to determine their relevance.
The partition is only 32% full, so lack of disk space is not the
explanation.
This installation process works perfectly fine when I configure and
build without the 3 asan-related Configure switches listed above.
Can anyone suggest why 'make install' fails on a perl built with
AddressSanitizer?
Thank you very much.
Jim Keenan
AddressSanitizer on FreeBSD-12. I configured by adding the following 3
switches to a standard ./Configure invocation:
#####
-Accflags='-fsanitize=address'
-Aldflags='-fsanitize=address'
-Alddflags='-fsanitize=address'
#####
'make' completed successfully, leading to the following value for
'config_args':
#####
$ ./perl -Ilib -V:config_args
config_args='-des -Dusedevel -Accflags='-fsanitize=address'
-Aldflags='-fsanitize=address' -Alddflags='-fsanitize=address'
-Dprefix=/home/jkeenan/testing/v5.35.1 -Uversiononly -Dman1dir=none
-Dman3dir=none';
'make' was actually invoked via 'make install':
#####
make -j8 install
#####
... so after 'make' itself completed, installation began. However,
every time I tried this, the underlying 'installperl' process stalled,
usually about here:
#####
...
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/amd64-freebsd/Filter/Util/Call.pm
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/Module/Load.pm
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/Module/Loaded.pm
/home/jkeenan/testing/v5.35.1/lib/perl5/5.35.1/Module/CoreList.pm
[hang]
#####
I called 'ps' to try to find out what was going on.
#####
$ ps auxwww | ack '(^USER.*VSZ|installperl)'
USER PID %CPU %MEM VSZ RSS TT STAT STARTED
TIME COMMAND
jkeenan 59025 100.0 2.9 21474917848 239388 0 R 23:46
1:05.03 ./perl -Ilib -I. installperl --destdir=
jkeenan 59793 0.0 0.1 11048 5016 2 R+ 23:47
0:00.00 /usr/local/bin/perl /usr/local/bin/ack (^USER.*VSZ|installperl)
#####
I'm not very surprised that 'installperl' was using 100% of CPU. There
was nothing much else happening on the machine at that point, so why
shouldn't all of CPU be devoted to this task.
The high values for 'VSZ' and 'RSS' look suspicious, but I don't have
the expertise to determine their relevance.
The partition is only 32% full, so lack of disk space is not the
explanation.
This installation process works perfectly fine when I configure and
build without the 3 asan-related Configure switches listed above.
Can anyone suggest why 'make install' fails on a perl built with
AddressSanitizer?
Thank you very much.
Jim Keenan