From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by sourceware.org (Postfix) with ESMTPS id A16AD383A321 for ; Fri, 3 Jun 2022 06:47:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A16AD383A321 Received: by mail-pj1-x1036.google.com with SMTP id w2-20020a17090ac98200b001e0519fe5a8so6571408pjt.4 for ; Thu, 02 Jun 2022 23:47:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dd1vdSWRBF0GpTfIIsZ9qVqo6Ps6DBlhFHE/yWAq/1E=; b=d0g4SaTx3K9q9Vf1hwj4K/ViH7DK0e05cIv0954o95Wtuehbv3vFZcqWDOyegcbJ4X 6yVmRm05qX9xoJCd2elNoP03XC9UthwbOl1NKacT5v1y1OIv4ogMkyXxcvJ9uMHNl84a yLXIuKLk98uOankW3i570aJNV8heAN3rFUTeFHwO2uS0zSg3EjHSsmD+K1A474Lc6FtK 1KZMmB/GDlmmRkk+dcth0bTHVKG7ttbH76+C6ODja02D+K/EZ8Dz1ungOUC+tfj+ifsf LqgIcN3AdpVVLQTExYQuiHH4E6b7wirM2PGZCRB1ll3SFgamNyIJoXbCtNHbdprPCK5i DGIg== X-Gm-Message-State: AOAM531pqR2/RFpbEOPtkL403jR6avsjdPAcYTIGBoHKIFe10XApdP8f GI322+/QnZQEK9ihXCiXs5PxCbkju+/cZgRWulE= X-Google-Smtp-Source: ABdhPJy5AjgcbzxeatNoUXxdDf8o830R6lJSYk63fwZ+vPVW+Syk8XJPJeqre+I59Ypj/S09H5GnzTfsMYov20KkQ08= X-Received: by 2002:a17:903:181:b0:161:d61f:e891 with SMTP id z1-20020a170903018100b00161d61fe891mr8727923plg.153.1654238843408; Thu, 02 Jun 2022 23:47:23 -0700 (PDT) MIME-Version: 1.0 References: <20220601115026.452a6840@vepi2> In-Reply-To: From: Arjen Markus Date: Fri, 3 Jun 2022 08:47:12 +0200 Message-ID: Subject: Re: is there a way to find out gfortran version and/or options from a given binary? To: Janne Blomqvist Cc: Kay Diederichs , Andre Vehreschild , Fortran List X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, URI_DOTEDU autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Fri, 03 Jun 2022 06:47:26 -0000 Do you know why the strings command does not show the identification string, which clearly present in the executable file, even though it should examine the entire file (the --all option does not alter the output)? Regards, Arjen Op vr 3 jun. 2022 om 07:22 schreef Janne Blomqvist < blomqvist.janne@gmail.com>: > On Thu, Jun 2, 2022 at 10:33 PM Kay Diederichs > wrote: > > Am 02.06.22 um 21:06 schrieb Janne Blomqvist: > > > As an alternative approach, make a command-line option (say, "-v") > > > that prints the version number of the program, name of the author and > > > other pertinent information, as well as the output of > > > compiler_version() and compiler_options(), and then exits. That would > > > ensure that those calls won't be optimized away. > > > > > > > I was thinking of such a -v option as well, and it is a solution for > > some situations, but not e.g. for a dynamically loadable library (see > > https://cims.nyu.edu/~donev/Fortran/DLL/DLL.Forum.txt ) which is my > > situation ( > > https://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/LIB ). I'd > > like to be able to see later which compiler version and options were > > used when compiling that library, because over the years of distributing > > this code, compilers and options have been changing. > > For the library case, can't you make a function > libraryname_print_version_info() or whatever you want to call it that > does the same? Of course, if the user never calls that function, uses > a static library, and everything is compiled with -ffunction-sections > and linked with --gc-sections that will not work, but otherwise the > string should still be there in the binary so you should be able to > find it with the strings tool? > > > -g includes the source code, which is not always desired, and is not > > possible here due to license issues - there was no concept of "open > > source" as we have it today in the 80ies when this code was started. > > Hmm, maybe that's the case, I don't have a legal opinion to offer on > this, sorry. > > > Also I think it makes the code slower. > > No, at least with GCC -g doesn't affect the code generation. It makes > the binary bigger so it takes longer to copy around, and depending on > how the debug info is spread out in the binary some of that might be > unnecessarily mapped into memory when running, but I think you'd be > very hard pressed to measure any difference in performance. > > -- > Janne Blomqvist >