From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id B59383857037 for ; Fri, 12 Mar 2021 12:17:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B59383857037 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-507-TpxdemqPMCyPzUmPHhYoxA-1; Fri, 12 Mar 2021 07:17:01 -0500 X-MC-Unique: TpxdemqPMCyPzUmPHhYoxA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DC3C78018A3; Fri, 12 Mar 2021 12:16:59 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-112-77.ams2.redhat.com [10.36.112.77]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0FFB160636; Fri, 12 Mar 2021 12:16:58 +0000 (UTC) From: Florian Weimer To: Alessandro Carminati via Libc-help Cc: Alessandro Carminati Subject: Re: Fwd: MIPSEL GLIBC sem_init() not shared References: <87a6r87il4.fsf@oldenburg.str.redhat.com> Date: Fri, 12 Mar 2021 13:17:11 +0100 In-Reply-To: (Alessandro Carminati via Libc-help's message of "Fri, 12 Mar 2021 12:37:00 +0100") Message-ID: <87sg505zy0.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-6.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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: libc-help@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-help mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2021 12:17:04 -0000 * Alessandro Carminati via Libc-help: > This time was the port on MIPSEL, but before this port, I compiled > successfully (without -lpthread) on two other architectures: ARM32 and > x64. Which is the mechanism why in other architecture, the libpthread > was included and in MIPS it didn't? 32-bit Arm starts at GLIBC_2.4, x86-64 starts at GLIBC_2.2.5. The old versions aren't there, so an underlinked library cannot bind against them. > My question is, why it resolved the call picking the > sem_init@GLIBC_2.0 instead of sem_init@@GLIBC_2.2? glibc originally did not have symbol versioning, so for backwards compatibility, unversioned binaries need to pick the oldest available version. In theory, we could provide better diagnostics. But we're working on moving all libpthread symbols in to libc.so.6, so that their versions are always visible to the link editor (unless you link with -nostdblib, but then you are on your own anyway). That's why the diagnostics do not seem to be particularly useful in the medium term. Thanks, Florian