From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id 417773858004 for ; Sat, 3 Apr 2021 18:55:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 417773858004 X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [79.232.147.59] ([79.232.147.59]) by web-mail.gmx.net (3c-app-gmx-bs02.server.lan [172.19.170.51]) (via HTTP); Sat, 3 Apr 2021 20:55:39 +0200 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran Subject: gfortran, OpenMP and static linking Content-Type: text/plain; charset=UTF-8 Date: Sat, 3 Apr 2021 20:55:39 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:CkgSLGaSAfqgurbZeaIbbjyTLayqxlrnoLpMNKijiG7oL4nP05hWGhYR7G352ncBJGPka q1viuOHGjQjo6MHMmgXIkcPkLeuQCVsrAAvPJan30oo/raG+F2vWahCiYSkPn+AjLgzc+h9LtMZq 2Hp/XiS4tFYwptPMfbHogcaabcCIxUNEJojNMSni5HTvtGo6m8Vvuse93ZDiId30MoU4CzYl/4u7 UqShgFbgvyBmd/fs6nWePwezTlPKm1e1No0OU2mme14rwL7Ldzzr5xiGJc6EBKCIXSDIep2ZTmmD us= X-UI-Out-Filterresults: notjunk:1;V03:K0:0ajqcoGtLZI=:/Cu/iGAqi/8AywOy6cqH8L vnL2ZjEYxn2Q4oMjHLAZGxD6wfTDgKS6/L4GX0ycqR/rSl4S1oi28qV2B5W1SdOjI9uA++GQR x5hi58B/z7NtWN0e5p7zwN1sSGtvGPDdcupIxiBDKBkjXltHkCNKyU938w+2/DKGwXO5p1dsp 2XgeisFbCy+KC53kU0lY17mQZ4bbLPu5C1XbmHzt4CmCt3ttmySChtqoiNE/3Nd9Nujh8F1b8 bOjk9DZJlca/5Ou4MZM7qUERoSFhM8dmfX8pgNhbjRDC/VwcgYYF5Q8RWLI7zJyZHuHHgwtoo 0SiCF7quWeZyPj5Jp4fgZCjtqBdUtDwk4ROmEehoriGnzCFdi9lDTRxFo7H2q+eMjfwH+pdSS 13eTdoFlebD+xEJWjrLJWByg7W5aBH8+NGAo2uPP+wYJyrC3PMYzUBCn5z/qvhtS5aLNQqOOf E7c20kOOboOVZWNG8hFmQ2nqybNplWU9i/X92LvuCz89QX/kTunycTiwMknXdyGab6v0Gz/o0 WKotNPGtTr0J4Pz/b7Ou4OwvHQ9QRXLCdN1Ea5X8U4+UZEnXk3ecl1GLLUOU8pmLdOv55awnb +SzLpuvisV92Rh/p3ZMgjpSf8SrRa+5jQOTX8Q36zwCNQrzrxJlk8wlXvwgMnlKmBPg2Gnz3A b7TBO7tJ5w3jCpf/6lHED7avWXG0829T4TjfpsVbaH2lpcqFkBi5MGelVzVOpUVU18fZD6Vm9 hJflheMLEDUIgnaE0isl638aRSY4EiGzSNRTKcoRPrxJjUpx+gxw6mAvnHAY7ixOCl18sgO1S qUwa3IqGkNbrCBLQdKKhS32Mm1bkvITLfe0wzds91tXVYl5gq3G2vtEigctRQRmUcZeMd/4Qg yDjvbU1U9nDh8NpvCAB1dc3IH5qKM1Yz8CyKc9ksPUf+oBUVDis7X95QbwpzXQ Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Apr 2021 18:55:43 -0000 Dear all, is there a reason that one should not be able to statically link a Fortran binary that has been compiled with -fopenmp? A tiny example seems to fail for me with all gfortran versions: program p !$omp parallel !$omp end parallel end % gfortran -fopenmp foo.f90 -g -static % OMP_NUM_THREADS=3D1 ./a.out Program received signal SIGSEGV: Segmentation fault - invalid memory refer= ence. [...] Running under gdb: Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000405198 in __gthread_mutex_destroy (__mutex=3D0x72ced8) at ../libgcc/gthr-default.h:739 #2 destroy_unit_mutex (u=3D0x72ce00) at ../../../libgfortran/io/unit.c:25= 2 #3 close_unit_1 (u=3D0x72ce00, locked=3Dlocked@entry=3D1) at ../../../lib= gfortran/io/unit.c:743 #4 0x0000000000405202 in _gfortrani_close_units () at ../../../libgfortra= n/io/unit.c:780 #5 0x000000000044c53c in __libc_csu_fini () at elf-init.c:100 #6 0x0000000000452ef0 in __run_exit_handlers (status=3D0, listp=3D0x72063= 0 <__exit_funcs>, run_list_atexit=3Drun_list_atexit@entry=3Dtrue, run_dtors=3Drun_dtors@= entry=3Dtrue) at exit.c:83 #7 0x0000000000452f4a in exit (status=3D) at exit.c:105 #8 0x000000000044bdc6 in __libc_start_main (main=3D0x4030bd
, argc= =3D1, argv=3D0x7fffffffc348, init=3D0x44c470 <__libc_csu_init>, fini=3D0x44c= 510 <__libc_csu_fini>, rtld_fini=3D0x0, stack_end=3D0x7fffffffc338) at ../csu/libc-start.c:34= 2 #9 0x0000000000402fba in _start () at ../sysdeps/x86_64/start.S:120 I suspect either a locking issue for unit_root in unit.c, or maybe bad initialization of it, but haven't stared long enough at the code. According to git blame almost all related references date back to 2005. Shall I open a PR against libfortran? Or is there something I am missing? Thanks, Harald