From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id 2E3B03858C62 for ; Fri, 17 Nov 2023 00:16:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2E3B03858C62 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2E3B03858C62 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::631 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700180173; cv=none; b=blOUI23bjxZz8LIJWn4AtPTrZ87YlsP+el28AanCSSqjsx+5tGf9YnSJFGT1B7dO5qEND4DVU9TGCKKKOqtasqmeJFwW8WAT7RU//WdJ7HMQCp8ZQkXddQrQV464JNN1FpQW3x92T9Hk9XnTSJ6WTfpBzDw9nW7QbmB0KWgasxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700180173; c=relaxed/simple; bh=CiTkxXkVEXeanq4s1sGZcFJyKCPiuyUquoRbz1+syMI=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=R9DUE9NxKip7eHvICqH+yUSIGdWayQbR41O0xfzWtNwfD67RutHzRq04NiaQjE4xz4UFR0ombILPF3lKORZlucAKDFpU7DXft2T2qqHTCQOsamg7TQtT48GWD9Wdy7XU43yMX4ebp1RqhvMWjVAo7V5B1tFz5D7dUqrvqAbYwp0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-9d10f94f70bso191796366b.3 for ; Thu, 16 Nov 2023 16:16:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700180169; x=1700784969; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OQQhj+Rpi7eTa8GMHtGFH2OkxVryaJzWULmzYz9+fKY=; b=lOwmC3PSi4LRmV/F3WCbMhZHC/tJ9C8HB4IdvY5JcTbNVcQ9tYo5k9KYokQaNPXjWo HUQj6cQ+09eo8JRFDgDlr1tqgHyGOQl2VRjDxqQ1PYriNu69cf7EiT7izgktlZdrqj+X KJ7FbDDZZukXeslZrCfXICFMrVa2sD3t5QB6tH8Ih5uwuZwGA8zqTvfDE/E0G6zXlFf6 GSavv0mXYpPM8XWN0NpluZxY3k1Cy8Ll91vj9VtcDFaicYaUCLbVQ03VCm3O8/70cyz8 qBmTutNXH1xIx4SHCapebjNpG7/Sn5Fu0w6kVUgVVgWgn5yuB4/vy7rnw2jUiZ4rnjM5 DlGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700180169; x=1700784969; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OQQhj+Rpi7eTa8GMHtGFH2OkxVryaJzWULmzYz9+fKY=; b=XURau/Dul6iqUyBP/+tuPB0EoZfVfRNtY0P+PI8Yf4nMJ0iurtPbkwTk3hW3QLMeyY xrNI3UBxJCUshC3KsEtzN64GY4zooMZg517xyAp0yw9V5S9uBoKkYfS2IoSCRE81tDcj 2lUGaZWK0ikdmAjzg+xeF+s99xiegVbbNQ9ppSMP3dI48IIBKdXb1mPoXqFyPCoHVjzz zPKDApMBQPMmAcv6M3d96673BXnYhzJNgDZQlYqf0qdeFQNoQowzx30bsn+7WxAj+ADn Sb/I0897RM67078MDoH3WDD408LTpBZpNS7KoyVyCCTiB95/2abzbhF4sKQFkTfcaUhq Mvcg== X-Gm-Message-State: AOJu0YylhKuHDEPk7FGOAcSHPPcmNgITlc8JNFi0dC9f0nRkpAw302XJ 3AzLm/CVRXSAJcLZ+l2qLQJ71lC1/Uk8azYvKQo= X-Google-Smtp-Source: AGHT+IGfCXgPe8kflshEYYqBMXTssdrAmHMgPmZHySJyDDmhipkJvFpo8F8dTQw+URD+LbFbBmqW38wVpoIP3g/Ndbw= X-Received: by 2002:a17:906:897:b0:9c7:5a01:ffe7 with SMTP id n23-20020a170906089700b009c75a01ffe7mr11827294eje.12.1700180169498; Thu, 16 Nov 2023 16:16:09 -0800 (PST) MIME-Version: 1.0 References: <5078775.gJyxqlhIka@nimes> <5798081.UuxTggG6dJ@nimes> In-Reply-To: <5798081.UuxTggG6dJ@nimes> From: David Edelsohn Date: Thu, 16 Nov 2023 19:15:57 -0500 Message-ID: Subject: Re: building GNU gettext on AIX To: Bruno Haible Cc: =?UTF-8?Q?Arsen_Arsenovi=C4=87?= , GCC Patches , bug-gettext@gnu.org Content-Type: multipart/alternative; boundary="0000000000000ea51b060a4e0b43" X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000000ea51b060a4e0b43 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 16, 2023 at 7:07=E2=80=AFPM Bruno Haible wrot= e: > David Edelsohn wrote: > > > ibm-clang links against libpthread.a as well: > > > $ ldd /opt/IBM/openxlC/17.1.1/bin/.ibm-clang.orig > > > /opt/IBM/openxlC/17.1.1/bin/.ibm-clang.orig needs: > > > /usr/lib/libpthreads.a(shr_xpg5_64.o) > > > /usr/opt/zlibNX/lib/libz.a(libz.so.1) > > > /usr/lib/libcurses.a(shr42_64.o) > > > /usr/lib/libiconv.a(shr4_64.o) > > > /usr/lib/libc++.a(shr_64.o) > > > /usr/lib/libc++abi.a(libc++abi.so.1) > > > /usr/lib/libc.a(shr_64.o) > > > /usr/lib/libpthreads.a(_shr_xpg5_64.o) > > > /usr/lib/libc++.a(libc++.so.1) > > > /usr/lib/libunwind.a(libunwind.so.1) > > > /usr/lib/libc.a(_shr_64.o) > > > /unix > > > /usr/lib/libcrypt.a(shr_64.o) > > > > > > > I have asked the IBM Clang team why ibm-clang depends on libpthreads. > > The reason is that > - For a library, it is a normal expectation nowadays that it is > multithread-safe. > - Making a library multithread-safe (without major hacks) means to do > locking or to call pthread_once / call_once in some places. > - The ISO C 11 threading functions in libc have some drawbacks compared > to the pthread functions. [1] So most developer prefer to rely on the > POSIX threads API. > - Since AIX does not have the POSIX mutex functions in libc and does not > support weak symbols like in ELF, this means a dependency to > pthread_mutex_lock or pthread_once. > - Accordingly, in the list of libraries above, 3 libraries need pthread* > symbols: > > $ nm -X 64 /usr/lib/libc++abi.a | grep ' U ' | grep pthread_mutex > pthread_mutex_lock U - > pthread_mutex_unlock U - > $ nm -X 64 /usr/lib/libc++.a | grep ' U ' | grep pthread_mutex > pthread_mutex_destroy U - > pthread_mutex_init U - > pthread_mutex_lock U - > pthread_mutex_trylock U - > pthread_mutex_unlock U - > pthread_mutexattr_destroy U - > pthread_mutexattr_init U - > pthread_mutexattr_settype U - > $ nm -X 64 /usr/opt/zlibNX/lib/libz.a | grep ' U ' | grep pthread_mutex > pthread_mutex_destroy U - > pthread_mutex_init U - > pthread_mutex_lock U - > pthread_mutex_unlock U - > There are ibm_clang and ibm_clang_r (previous xlc and xlc_r) to compile with and without thread safe. If IBM Clang team chose to only provide a thread safe version of libc++, okay, but that doesn't seem like a fundamental requirement. zlibNX is another can of worms. David --0000000000000ea51b060a4e0b43--