This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Trap SIGBUS when Configure checks for va_copy (#18148)
authorH.Merijn Brand <perl5@tux.freedom.nl>
Tue, 22 Sep 2020 11:14:51 +0000 (13:14 +0200)
committerH.Merijn Brand <perl5@tux.freedom.nl>
Tue, 22 Sep 2020 11:14:51 +0000 (13:14 +0200)
On several systems the attempt to determine if we &quot;need va_copy() or
similar&quot; results in a SIGBUS instead of a SIGSEGV because the fault
happens pointing at an io device address.

While reviewing accounting logs during the OpenBSD system build, bluhm@
noticed a core dump and deraadt@ tracked it down.

While researching it was discovered that this is a fairly common case in
other systems as well.

Original diff by deraadt@

U/perl/need_va_copy.U

index 51e6574..a091886 100644 (file)
@@ -64,6 +64,9 @@ int
 main(int ac, char **av)
 {
   signal(SIGSEGV, exit);
+#ifdef SIGBUS
+  signal(SIGBUS,  exit);
+#endif
 
   myprintf("%s%cs all right, then\n", "that", '\'');
   exit(0);