From owner-freebsd-ports@freebsd.org Wed Jul 22 21:11:08 2020 Return-Path: Delivered-To: freebsd-ports@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B91E0360FEE; Wed, 22 Jul 2020 21:11:08 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BBp6N4WR2z4mDn; Wed, 22 Jul 2020 21:11:08 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1354) id 8BE3F1FFB8; Wed, 22 Jul 2020 21:11:08 +0000 (UTC) From: Jan Beich To: Mark Millard via freebsd-ppc Cc: "pkubaj@freebsd.org" , FreeBSD ports , Mark Millard Subject: Re: 32-bit powerpc graphics/mesa-dri build failure (poudriere based): "error: cannot redeclare builtin function" (e.g., __sync_add_and_fetch_8) References: Date: Wed, 22 Jul 2020 23:11:02 +0200 In-Reply-To: (Mark Millard via freebsd-ppc's message of "Tue, 21 Jul 2020 14:37:20 -0700") Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Jul 2020 21:11:08 -0000 Mark Millard via freebsd-ppc writes: > ../src/util/u_atomic.c:38:1: error: cannot redeclare builtin function '__sync_add_and_fetch_8' > __sync_add_and_fetch_8(uint64_t *ptr, uint64_t val) > ^ > ../src/util/u_atomic.c:38:1: note: '__sync_add_and_fetch_8' is a builtin with type 'long long (volatile long long *, long long, ...)' > ../src/util/u_atomic.c:38:1: error: definition of builtin function '__sync_add_and_fetch_8' > __sync_add_and_fetch_8(uint64_t *ptr, uint64_t val) > ^ > ../src/util/u_atomic.c:51:1: error: cannot redeclare builtin function '__sync_sub_and_fetch_8' > __sync_sub_and_fetch_8(uint64_t *ptr, uint64_t val) > ^ > ../src/util/u_atomic.c:51:1: note: '__sync_sub_and_fetch_8' is a builtin with type 'long long (volatile long long *, long long, ...)' > ../src/util/u_atomic.c:51:1: error: definition of builtin function '__sync_sub_and_fetch_8' > __sync_sub_and_fetch_8(uint64_t *ptr, uint64_t val) > ^ > ../src/util/u_atomic.c:64:1: error: cannot redeclare builtin function '__sync_val_compare_and_swap_8' > __sync_val_compare_and_swap_8(uint64_t *ptr, uint64_t oldval, uint64_t newval) > ^ > ../src/util/u_atomic.c:64:1: note: '__sync_val_compare_and_swap_8' is a builtin with type 'long long (volatile long long *, long long, long long, ...)' > ../src/util/u_atomic.c:64:1: error: definition of builtin function '__sync_val_compare_and_swap_8' > __sync_val_compare_and_swap_8(uint64_t *ptr, uint64_t oldval, uint64_t newval) > ^ > 6 errors generated. Try replacing files/patch-i386 with https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5464 On i386 (clang) one can sometimes avoid -latomic by bumping -march (FreeBSD 11.4/12.2/13.0 defaults to i686) but powerpc (gcc) probably can't use __sync* with 64-bit types without -latomic, making Meson define MISSING_64BIT_ATOMICS to use src/util/u_atomic.c