From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 849 invoked by alias); 29 May 2011 10:17:21 -0000 Received: (qmail 824 invoked by uid 22791); 29 May 2011 10:17:20 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_CP X-Spam-Check-By: sourceware.org Received: from mail-px0-f176.google.com (HELO mail-px0-f176.google.com) (209.85.212.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 29 May 2011 10:17:06 +0000 Received: by pxi11 with SMTP id 11so1750798pxi.21 for ; Sun, 29 May 2011 03:17:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.38.131 with SMTP id g3mr1633372pbk.412.1306664225647; Sun, 29 May 2011 03:17:05 -0700 (PDT) Received: by 10.68.66.202 with HTTP; Sun, 29 May 2011 03:17:05 -0700 (PDT) Date: Sun, 29 May 2011 16:46:00 -0000 Message-ID: Subject: [Patch, libfortran] PR 48931 Async-signal-safety of backtrace signal handler, Part 2 From: Janne Blomqvist To: GCC Patches , Fortran List Content-Type: multipart/mixed; boundary=bcaec51dd5c702adf504a467790a Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-05/txt/msg02265.txt.bz2 --bcaec51dd5c702adf504a467790a Content-Type: text/plain; charset=UTF-8 Content-length: 740 Hi, FX reminded me that execvp() is not guaranteed to be async-signal-safe, hence we must use execve(). So instead during library initialization try to find addr2line. Regtested on x86_64-unknown-linux-gnu, Ok for trunk? 2011-05-29 Janne Blomqvist PR libfortran/48931 * libgfortran.h (find_addr2line): New prototype. * runtime/backtrace.c (show_backtrace): Use async-signal-safe execve and stored path of addr2line. * runtime/compile_options.c (maybe_find_addr2line): New function. (set_options): Call maybe_find_addr2line if backtracing is enabled. * runtime/main.c (find_addr2line): New function. (init): Call find_addr2line if backtracing is enabled. (cleanup): Free addr2line_path. -- Janne Blomqvist --bcaec51dd5c702adf504a467790a Content-Type: text/x-patch; charset=US-ASCII; name="bt5.diff" Content-Disposition: attachment; filename="bt5.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_go9u45j40 Content-length: 5161 ZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2xpYmdmb3J0cmFuLmggYi9saWJn Zm9ydHJhbi9saWJnZm9ydHJhbi5oCmluZGV4IGU3N2JhMTAuLmI3MmIyNTAg MTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL2xpYmdmb3J0cmFuLmgKKysrIGIv bGliZ2ZvcnRyYW4vbGliZ2ZvcnRyYW4uaApAQCAtNjY1LDYgKzY2NSw5IEBA IGV4cG9ydF9wcm90byhzdG9yZV9leGVfcGF0aCk7CiBleHRlcm4gY2hhciAq IGZ1bGxfZXhlX3BhdGggKHZvaWQpOwogaW50ZXJuYWxfcHJvdG8oZnVsbF9l eGVfcGF0aCk7CiAKK2V4dGVybiB2b2lkIGZpbmRfYWRkcjJsaW5lICh2b2lk KTsKK2ludGVybmFsX3Byb3RvKGZpbmRfYWRkcjJsaW5lKTsKKwogLyogYmFj a3RyYWNlLmMgKi8KIAogZXh0ZXJuIHZvaWQgc2hvd19iYWNrdHJhY2UgKHZv aWQpOwpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vcnVudGltZS9iYWNrdHJh Y2UuYyBiL2xpYmdmb3J0cmFuL3J1bnRpbWUvYmFja3RyYWNlLmMKaW5kZXgg ZGZmNDQ2Ni4uMDI2OTMwMCAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vcnVu dGltZS9iYWNrdHJhY2UuYworKysgYi9saWJnZm9ydHJhbi9ydW50aW1lL2Jh Y2t0cmFjZS5jCkBAIC0xMDIsNiArMTAyLDkgQEAgZmRfZ2V0cyAoY2hhciAq cywgaW50IHNpemUsIGludCBmZCkKIH0KIAogCitleHRlcm4gY2hhciAqYWRk cjJsaW5lX3BhdGg7CisKKwogLyogc2hvd19iYWNrdHJhY2UgZGlzcGxheXMg dGhlIGJhY2t0cmFjZSwgY3VycmVudGx5IG9idGFpbmVkIGJ5IG1lYW5zIG9m CiAgICB0aGUgZ2xpYmMgYmFja3RyYWNlKiBmdW5jdGlvbnMuICAqLwogCkBA IC0xMjIsNiArMTI1LDkgQEAgc2hvd19iYWNrdHJhY2UgKHZvaWQpCiAKICNp ZiBDQU5fUElQRQogCisgIGlmIChhZGRyMmxpbmVfcGF0aCA9PSBOVUxMKQor ICAgIGdvdG8gZmFsbGJhY2tfbm9lcnI7CisKICAgLyogV2UgYXR0ZW1wdCB0 byBleHRyYWN0IGZpbGUgYW5kIGxpbmUgaW5mb3JtYXRpb24gZnJvbSBhZGRy MmxpbmUuICAqLwogICBkbwogICB7CkBAIC0xNDQsNiArMTUwLDcgQEAgc2hv d19iYWNrdHJhY2UgKHZvaWQpCiAJLyogQ2hpbGQgcHJvY2Vzcy4gICovCiAj ZGVmaW5lIE5VTV9GSVhFREFSR1MgNwogCWNoYXIgKmFyZ1tOVU1fRklYRURB UkdTXTsKKwljaGFyICpuZXdlbnZbXSA9IHsgTlVMTCB9OwogCiAJY2xvc2Ug KGZbMF0pOwogCkBAIC0xNTgsMTQgKzE2NSwxNCBAQCBzaG93X2JhY2t0cmFj ZSAodm9pZCkKIAkgIF9leGl0ICgxKTsKIAljbG9zZSAoZlsxXSk7CiAKLQlh cmdbMF0gPSAoY2hhciAqKSAiYWRkcjJsaW5lIjsKKwlhcmdbMF0gPSBhZGRy MmxpbmVfcGF0aDsKIAlhcmdbMV0gPSAoY2hhciAqKSAiLWUiOwogCWFyZ1sy XSA9IGZ1bGxfZXhlX3BhdGggKCk7CiAJYXJnWzNdID0gKGNoYXIgKikgIi1m IjsKIAlhcmdbNF0gPSAoY2hhciAqKSAiLXMiOwogCWFyZ1s1XSA9IChjaGFy ICopICItQyI7CiAJYXJnWzZdID0gTlVMTDsKLQlleGVjdnAgKGFyZ1swXSwg YXJnKTsKKwlleGVjdmUgKGFkZHIybGluZV9wYXRoLCBhcmcsIG5ld2Vudik7 CiAJX2V4aXQgKDEpOwogI3VuZGVmIE5VTV9GSVhFREFSR1MKICAgICAgIH0K QEAgLTI2Miw2ICsyNjksNyBAQCBmYWxsYmFjazoKIAogI2VuZGlmIC8qIENB Tl9QSVBFICovCiAKK2ZhbGxiYWNrX25vZXJyOgogICAvKiBGYWxsYmFjayB0 byB0aGUgZ2xpYmMgYmFja3RyYWNlLiAgKi8KICAgZXN0cl93cml0ZSAoIlxu QmFja3RyYWNlIGZvciB0aGlzIGVycm9yOlxuIik7CiAgIGJhY2t0cmFjZV9z eW1ib2xzX2ZkICh0cmFjZSwgZGVwdGgsIFNUREVSUl9GSUxFTk8pOwpkaWZm IC0tZ2l0IGEvbGliZ2ZvcnRyYW4vcnVudGltZS9jb21waWxlX29wdGlvbnMu YyBiL2xpYmdmb3J0cmFuL3J1bnRpbWUvY29tcGlsZV9vcHRpb25zLmMKaW5k ZXggZGMwZGE0Yi4uYzNlNjRkZSAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4v cnVudGltZS9jb21waWxlX29wdGlvbnMuYworKysgYi9saWJnZm9ydHJhbi9y dW50aW1lL2NvbXBpbGVfb3B0aW9ucy5jCkBAIC01OCw2ICs1OCwxNSBAQCBi YWNrdHJhY2VfaGFuZGxlciAoaW50IHNpZ251bSkKIH0KIAogCisvKiBIZWxw ZXIgZnVuY3Rpb24gZm9yIHNldF9vcHRpb25zIGJlY2F1c2Ugd2UgbmVlZCB0 byBhY2Nlc3MgdGhlCisgICBnbG9iYWwgdmFyaWFibGUgb3B0aW9ucyB3aGlj aCBpcyBub3Qgc2VlbiBpbiBzZXRfb3B0aW9ucy4gICovCitzdGF0aWMgdm9p ZAorbWF5YmVfZmluZF9hZGRyMmxpbmUgKHZvaWQpCit7CisgIGlmIChvcHRp b25zLmJhY2t0cmFjZSA9PSAtMSkKKyAgICBmaW5kX2FkZHIybGluZSAoKTsK K30KKwogLyogU2V0IHRoZSB1c3VhbCBjb21waWxlLXRpbWUgb3B0aW9ucy4g ICovCiBleHRlcm4gdm9pZCBzZXRfb3B0aW9ucyAoaW50ICwgaW50IFtdKTsK IGV4cG9ydF9wcm90byhzZXRfb3B0aW9ucyk7CkBAIC0xMzEsNiArMTQwLDgg QEAgc2V0X29wdGlvbnMgKGludCBudW0sIGludCBvcHRpb25zW10pCiAjaWYg ZGVmaW5lZChTSUdYRlNaKQogICAgICAgc2lnbmFsIChTSUdYRlNaLCBiYWNr dHJhY2VfaGFuZGxlcik7CiAjZW5kaWYKKworICAgICAgbWF5YmVfZmluZF9h ZGRyMmxpbmUgKCk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xp Ymdmb3J0cmFuL3J1bnRpbWUvbWFpbi5jIGIvbGliZ2ZvcnRyYW4vcnVudGlt ZS9tYWluLmMKaW5kZXggNTRkOWUwOS4uYmM4ZGFiNCAxMDA2NDQKLS0tIGEv bGliZ2ZvcnRyYW4vcnVudGltZS9tYWluLmMKKysrIGIvbGliZ2ZvcnRyYW4v cnVudGltZS9tYWluLmMKQEAgLTEzOSw2ICsxMzksNDAgQEAgZnVsbF9leGVf cGF0aCAodm9pZCkKIH0KIAogCitjaGFyICphZGRyMmxpbmVfcGF0aDsKKwor LyogRmluZCBhZGRyMmxpbmUgYW5kIHN0b3JlIHRoZSBwYXRoLiAgKi8KKwor dm9pZAorZmluZF9hZGRyMmxpbmUgKHZvaWQpCit7CisjaWZkZWYgSEFWRV9B Q0NFU1MKKyNkZWZpbmUgQTJMX0xFTiAxMAorICBjaGFyICpwYXRoID0gZ2V0 ZW52ICgiUEFUSCIpOworICBzaXplX3QgbiA9IHN0cmxlbiAocGF0aCk7Cisg IGNoYXIgYXBbbiArIDEgKyBBMkxfTEVOXTsKKyAgc2l6ZV90IGFpID0gMDsK KyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspCisgICAgeworICAg ICAgaWYgKHBhdGhbaV0gIT0gJzonKQorCWFwW2FpKytdID0gcGF0aFtpXTsK KyAgICAgIGVsc2UKKwl7CisJICBhcFthaSsrXSA9ICcvJzsKKwkgIG1lbWNw eSAoYXAgKyBhaSwgImFkZHIybGluZSIsIEEyTF9MRU4pOworCSAgaWYgKGFj Y2VzcyAoYXAsIFJfT0t8WF9PSykgPT0gMCkKKwkgICAgeworCSAgICAgIGFk ZHIybGluZV9wYXRoID0gc3RyZHVwIChhcCk7CisJICAgICAgcmV0dXJuOwor CSAgICB9CisJICBlbHNlCisJICAgIGFpID0gMDsKKwl9CisgICAgfQorI2Vu ZGlmCit9CisKKwogLyogU2V0IHRoZSBzYXZlZCB2YWx1ZXMgb2YgdGhlIGNv bW1hbmQgbGluZSBhcmd1bWVudHMuICAqLwogCiB2b2lkCkBAIC0xODUsNiAr MjE5LDkgQEAgaW5pdCAodm9pZCkKICAgLyogaWYgKGFyZ2MgPiAxICYmIHN0 cmNtcChhcmd2WzFdLCAiLS1yZXN1bWUiKSA9PSAwKSByZXN1bWUoKTsgICov CiAjZW5kaWYKIAorICBpZiAob3B0aW9ucy5iYWNrdHJhY2UgPT0gMSkKKyAg ICBmaW5kX2FkZHIybGluZSAoKTsKKwogICByYW5kb21fc2VlZF9pNCAoTlVM TCwgTlVMTCwgTlVMTCk7CiB9CiAKQEAgLTE5OCw0ICsyMzUsNiBAQCBjbGVh bnVwICh2b2lkKQogICAKICAgaWYgKHBsZWFzZV9mcmVlX2V4ZV9wYXRoX3do ZW5fZG9uZSkKICAgICBmcmVlICgoY2hhciAqKSBleGVfcGF0aCk7CisKKyAg ZnJlZSAoYWRkcjJsaW5lX3BhdGgpOwogfQo= --bcaec51dd5c702adf504a467790a--