From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id doA7KHwsr2dOGDEAWB0awg (envelope-from ) for ; Fri, 14 Feb 2025 06:43:56 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=iFZ4oy0Y; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 91E621E105; Fri, 14 Feb 2025 06:43:56 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id F19871E05C for ; Fri, 14 Feb 2025 06:43:53 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8EC33385842A for ; Fri, 14 Feb 2025 11:43:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8EC33385842A Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=iFZ4oy0Y Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 1CD15385842D for ; Fri, 14 Feb 2025 11:41:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1CD15385842D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1CD15385842D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739533309; cv=none; b=OnGeWV2x4XZjpUSvYmrAA3DOwjhoVUl7i4BZKnTNaTxlFWlUK/aFCy/s4doRbd1pUfT4zFJXec8BLu0l1Xn0PlsvXqK7jN/cwuNnnYTYJoFj3U1GUX8jQXyUiqu5uHlH02c8rSfmZqJ2aHG3VaZCFjkaOcT7YkF5ee/DfYChmeY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739533309; c=relaxed/simple; bh=HlVfSHV6V4RsgiG6YS7sfF6zv/tKVpHR1Sh9uWYEu1U=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=xHy2SdOOfwhrDt+IX1NXun6hbogi1VEHTwOeCx3XgVY7amTVgvokLqzgdPfujzU6l2Zsd09EAMX0YMkIbe/XAy6v718RJ+LKfd4UyG9EU1r1AZsrIG5cDosOp6d64d8fBrPHyrLv7ywBcW1hzXFEsDzzRWCfA9GUjc4Ntkhq12w= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1CD15385842D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1739533308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=M7/zZ07smK7ffThCsaHfxsN7yeAqImJqqxFP5FJCivs=; b=iFZ4oy0YOpv11maoQbybV+LHvk/T71Cw02+MFACpn9HFpe0AWNsKBwRsnJO/Y8/h4D/HfB +OIGXHaV7uhCvqi8a5/TvTyI9kXwZ9u2ERtkIoFpi1Kz11I2krlRd3a+st+NdfHb/Q1ubG 6gCYR+MijYxOHnyKcaxp9GAhQDHy4mA= Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-26-o6jM4AMQP1aT_XCI9voyow-1; Fri, 14 Feb 2025 06:41:47 -0500 X-MC-Unique: o6jM4AMQP1aT_XCI9voyow-1 X-Mimecast-MFC-AGG-ID: o6jM4AMQP1aT_XCI9voyow_1739533307 Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-4bcc0a75586so77282137.0 for ; Fri, 14 Feb 2025 03:41:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739533306; x=1740138106; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=M7/zZ07smK7ffThCsaHfxsN7yeAqImJqqxFP5FJCivs=; b=TWhhEZ/xbx0W6+BN68VjFQP6JVCBzXDdOnPNcF4Fvdgb5P0tQ2F3SVIkMtWtCNMXPm Bk0uVsmxsjj6yYj3pRi1Zul50Y6bf3aMFZP9IRF6zmXN8pV/eirAoxWbLnZPWrVdWNg2 OAiFpsFe0Dkp30GR8Jnx0ijLbJn17KAMT+bNJWPpFGKM3ZbsqWvxC1Ur94wbgtREUQpi 9cIaNjy0ZiR6dW6OrORFZptvkpQAIJgaoJFm/Afed5Ct85woVcWPD6+bKa8R7r8MURzS qjK72rsrxSpunrgrOHlymSyCUDq/p4RECikGYFmKK/EaV3guig6Q5ZsW6AlOJGSJhf0/ B7mA== X-Forwarded-Encrypted: i=1; AJvYcCXJYTQSf9UbwibOlyU7klOpa8cIcCmC2CI4j75zYU/0VIfiAwxJADKPKNN1WTad4uy0cWMixqRcISEaGA==@sourceware.org X-Gm-Message-State: AOJu0YxWu2yMf4M/E9IcORUMUss7ilxIi/xK0RD7tr633aR2qpS8qC6O Ap/3z0FEgUrYXRBaQDaaVFeS2yrn2+zVp0lv60acOmdSrmq9dp7QZhdlpC0ZFkADE4P4yRI5zBo WQeEVGRRs+VoTOewz0hHdD8Jh/X6t1jCcnkH1lF/xCzDAKu8nM9+PlPYkB54= X-Gm-Gg: ASbGnctwBbVL6V25xQ4tHgRy88KcF5JCog5o1536tcyijpFBtGDo5D8uS3UgC/6NXUH VeWqolZvWi89Mt5W8dT3x9wGD7mH0/aKCp7UVCzys2yp/OVvSNf1Ems+KogWGBxhunVID2xTtG8 1rn0dDe0F/5efTpCaXnVAdFj1A/maygnERDS+OPziG2UxKBc5Sx7iRB7CGQzlGaUKd2Mz7/X+Ks tw4l2gWfnuucU+hphI0QgrVbZZwdsbYcT3kAlUEIZyolhDDMDIZ8GO5dbXUBXvzOmZa0kxWxsBD jRtcDA6KInqeh7Ek X-Received: by 2002:a05:6102:26c8:b0:4bb:b868:9d2d with SMTP id ada2fe7eead31-4bc0384c3a6mr6380112137.24.1739533306071; Fri, 14 Feb 2025 03:41:46 -0800 (PST) X-Google-Smtp-Source: AGHT+IFOENQZIdk61gLbNj/JnFAM4X+pLsA8Tpn/65B3VlqBKTfgxtXMYasWF9BE4CPhgs8pBMzkkQ== X-Received: by 2002:a05:6102:26c8:b0:4bb:b868:9d2d with SMTP id ada2fe7eead31-4bc0384c3a6mr6380102137.24.1739533305337; Fri, 14 Feb 2025 03:41:45 -0800 (PST) Received: from ?IPV6:2804:14d:8084:9a69::1000? ([2804:14d:8084:9a69::1000]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4bd2d9c3759sm139356137.27.2025.02.14.03.41.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 14 Feb 2025 03:41:44 -0800 (PST) Message-ID: <7e1966ec-417b-4e2d-9478-06d1ad11ad4a@redhat.com> Date: Fri, 14 Feb 2025 08:41:41 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Fix 64-bit BFD detection causing build failures To: "Maciej W. Rozycki" , binutils@sourceware.org, gdb-patches@sourceware.org Cc: Andrew Burgess References: From: Guinevere Larsen In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: LPr_ew1rTcJbSBGmAMaYgY7BKxqp7q7L6Q_ss61iEDQ_1739533307 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 2/12/25 3:36 PM, Maciej W. Rozycki wrote: > We have a discrepancy with 64-bit BFD handling across our component > subdirectories leading to link failures such as: > > ld: ../opcodes/.libs/libopcodes.a(disassemble.o): in function `disassembler': disassemble.c:(.text+0x65): undefined reference to `print_insn_alpha' > ld: disassemble.c:(.text+0x105): undefined reference to `print_insn_ia64' > ld: disassemble.c:(.text+0x11d): undefined reference to `print_insn_loongarch' > ld: disassemble.c:(.text+0x1a1): undefined reference to `print_insn_big_mips' > [...] > > with some configurations having a 32-bit host and 64-bit BFD, such as: > `--host=i386-linux-gnu --target=riscv64-linux-gnu --enable-targets=all'. > This is ultimately due to how 64-bit BFD is enabled for bfd/ itself and > other subdirectorses and has been a regression from commit 1d5269c994bf > ("unify 64-bit bfd checks"). > > For bfd/ the BFD_64_BIT autoconf macro from config/bfd64.m4 is used > combined with this logic in bfd/configure.ac: > > case ${host64}-${target64}-${want64} in > *true*) > wordsize=64 > bfd64_libs='$(BFD64_LIBS)' > all_backends='$(BFD64_BACKENDS) $(BFD32_BACKENDS)' > [...] > ;; > false-false-false) > wordsize=32 > all_backends='$(BFD32_BACKENDS)' > ;; > esac > > where the value of ${wordsize} switches between 32-bit and 64-bit BFD > via these pieces: > > #define BFD_ARCH_SIZE @wordsize@ > > and: > > #if BFD_ARCH_SIZE >= 64 > #define BFD64 > #endif > > in bfd/bfd-in.h, which ultimately becomes a part of "bfd.h". > > Then ${host64} is determined in bfd/configure.ac from the host's word > size, via the host's pointer size: > > if test "x${ac_cv_sizeof_void_p}" = "x8"; then > host64=true > fi > > And ${target64} is determined in bfd/configure.ac from the target's word > size: > > if test ${target_size} = 64; then > target64=true > fi > > Where multiple targets have been requested with `--enable-targets=all' > the presence of any 64-bit target will set "true" here. > > Finally ${want64} is set according to `--enable-64-bit-bfd' user option > with an arrangement involving BFD_64_BIT: > > BFD_64_BIT > if test $enable_64_bit_bfd = yes ; then > want64=true > else > want64=false > fi > > which also, redundantly, checks and sets its result upon the host's word > size. Lastly ${want64} is also selectively set by target fragments in > bfd/config.bfd, which mostly if not completely overlaps with ${target64} > setting as described above. > > Conversely other subdirectories only rely on BFD_64_BIT, so they fail to > notice that BFD is 64-bit and do not enable their 64-bit handling where > the host requested is 32-bit and 64-bit BFD has been enabled other than > with `--enable-64-bit-bfd'. One consequence is opcodes/disassemble.c > enables calls to its numerous own 64-bit backends by checking the BFD64 > macro from "bfd.h", however does not actually enable said backends in > its Makefile. Hence the link errors quoted above. > > Address the problem then by moving the `--enable-64-bit-bfd' option back > to bfd/configure.ac and remove the call to BFD_64_BIT from there and > then rewrite the macro in terms of checking for the presence of BFD64 > macro in "bfd.h", which is the canonical way of determining whether BFD > is 64-bit or not. > > Rather than running `grep' directly on ../bfd/bfd-in3.h as the opcodes/ > fragment used to before the problematic commit: > > if grep '#define BFD_ARCH_SIZE 64' ../bfd/bfd-in3.h > /dev/null; then > > run the preprocessor on "bfd.h", which allows to invoke the macro from > configure.ac files placed in subdirectories located at deeper levels, by > relying on the preprocessor's search path. > > This requires however that the invokers rely on `all-bfd' rather than > `configure-bfd' for their `configure' invocation stage, because "bfd.h" > is made by `make all' rather than `configure' in bfd/. > > The "ac_cv_" prefix is the namespace reserved by autoconf for own use, > so choose "bfd_cv_" for the cache variable. It is safe to use one here, > because the setting of BFD64 will only ever change if the configured > host or target does and that triggers a consistency check such as: > > configure: loading cache ./config.cache > configure: error: `target_alias' has changed since the previous run: > configure: former value: `riscv64-linux-gnu' > configure: current value: `i386-linux-gnu' > configure: error: in `.../libiberty': > configure: error: changes in the environment can compromise the build > configure: error: run `make distclean' and/or `rm ./config.cache' and start over > > and the cache will have to be removed to proceed. > > Last but not least remove the hack from gdb/configure.ac to fail builds > for `mips*-*-*' hosts where `--enable-targets=all' has been requested, > but `--enable-64-bit-bfd' has not as it's no longer needed. Such builds > complete successfully now, having enabled 64-bit BFD implicitly. > --- > Hi, > > Verified for binutils and GDB by building with a `powerpc64le-linux-gnu' > build and `i386-linux-gnu' and `mips-linux-gnu' native hosts, and then the > same build and hosts and the `riscv64-linux-gnu' target (and verifying in > opcodes/config.log that 64-bit BFD has or hasn't been detected, according > to the expectation) with and without `--enable-targets=all'. > > For binutils also verified via regression testing across my usual set of > targets (currently counting 238), with `--enable-targets=all'. > > OK to apply? > > Maciej > --- Hi! As I said in my other email, I'm not confident enough in autotools to properly review, but I have tested and it solves the build issue in the mips machine I first ran into, so feel free to add my test tag Tested-By: Guinevere Larsen -- Cheers, Guinevere Larsen She/Her/Hers > Makefile.def | 4 > Makefile.in | 40 +++---- > bfd/configure | 60 ---------- > bfd/configure.ac | 8 + > config/bfd64.m4 | 40 ++++--- > gdb/configure | 115 ++++++-------------- > gdb/configure.ac | 15 -- > gdb/configure.tgt | 8 - > ld/configure | 289 ++++++--------------------------------------------- > ld/configure.ac | 6 - > opcodes/configure | 285 ++++++-------------------------------------------- > opcodes/configure.ac | 2 > 12 files changed, 174 insertions(+), 698 deletions(-) > > binutils-gdb-bfd64.diff > Index: binutils-gdb/Makefile.def > =================================================================== > --- binutils-gdb.orig/Makefile.def > +++ binutils-gdb/Makefile.def > @@ -523,7 +523,7 @@ dependencies = { module=install-bfd; on= > dependencies = { module=install-strip-bfd; on=install-strip-libsframe; }; > > // libopcodes depends on libbfd > -dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; }; > +dependencies = { module=configure-opcodes; on=all-bfd; hard=true; }; > dependencies = { module=install-opcodes; on=install-bfd; }; > dependencies = { module=install-strip-opcodes; on=install-strip-bfd; }; > > @@ -549,8 +549,8 @@ dependencies = { module=install-gprofng; > dependencies = { module=install-gprofng; on=install-bfd; }; > > dependencies = { module=configure-ld; on=configure-gettext; }; > +dependencies = { module=configure-ld; on=all-bfd; }; > dependencies = { module=all-ld; on=all-libiberty; }; > -dependencies = { module=all-ld; on=all-bfd; }; > dependencies = { module=all-ld; on=all-opcodes; }; > dependencies = { module=all-ld; on=all-build-bison; }; > dependencies = { module=all-ld; on=all-build-flex; }; > Index: binutils-gdb/Makefile.in > =================================================================== > --- binutils-gdb.orig/Makefile.in > +++ binutils-gdb/Makefile.in > @@ -67369,16 +67369,16 @@ install-strip-ld: maybe-install-strip-bf > install-strip-ld: maybe-install-strip-libctf > install-bfd: maybe-install-libsframe > install-strip-bfd: maybe-install-strip-libsframe > -configure-opcodes: configure-bfd > -configure-stage1-opcodes: configure-stage1-bfd > -configure-stage2-opcodes: configure-stage2-bfd > -configure-stage3-opcodes: configure-stage3-bfd > -configure-stage4-opcodes: configure-stage4-bfd > -configure-stageprofile-opcodes: configure-stageprofile-bfd > -configure-stagetrain-opcodes: configure-stagetrain-bfd > -configure-stagefeedback-opcodes: configure-stagefeedback-bfd > -configure-stageautoprofile-opcodes: configure-stageautoprofile-bfd > -configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd > +configure-opcodes: all-bfd > +configure-stage1-opcodes: all-stage1-bfd > +configure-stage2-opcodes: all-stage2-bfd > +configure-stage3-opcodes: all-stage3-bfd > +configure-stage4-opcodes: all-stage4-bfd > +configure-stageprofile-opcodes: all-stageprofile-bfd > +configure-stagetrain-opcodes: all-stagetrain-bfd > +configure-stagefeedback-opcodes: all-stagefeedback-bfd > +configure-stageautoprofile-opcodes: all-stageautoprofile-bfd > +configure-stageautofeedback-opcodes: all-stageautofeedback-bfd > install-opcodes: maybe-install-bfd > install-strip-opcodes: maybe-install-strip-bfd > configure-gas: maybe-configure-gettext > @@ -67443,6 +67443,16 @@ configure-stagetrain-ld: maybe-configure > configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext > configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext > configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext > +configure-ld: maybe-all-bfd > +configure-stage1-ld: maybe-all-stage1-bfd > +configure-stage2-ld: maybe-all-stage2-bfd > +configure-stage3-ld: maybe-all-stage3-bfd > +configure-stage4-ld: maybe-all-stage4-bfd > +configure-stageprofile-ld: maybe-all-stageprofile-bfd > +configure-stagetrain-ld: maybe-all-stagetrain-bfd > +configure-stagefeedback-ld: maybe-all-stagefeedback-bfd > +configure-stageautoprofile-ld: maybe-all-stageautoprofile-bfd > +configure-stageautofeedback-ld: maybe-all-stageautofeedback-bfd > all-ld: maybe-all-libiberty > all-stage1-ld: maybe-all-stage1-libiberty > all-stage2-ld: maybe-all-stage2-libiberty > @@ -67453,16 +67463,6 @@ all-stagetrain-ld: maybe-all-stagetrain- > all-stagefeedback-ld: maybe-all-stagefeedback-libiberty > all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty > all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty > -all-ld: maybe-all-bfd > -all-stage1-ld: maybe-all-stage1-bfd > -all-stage2-ld: maybe-all-stage2-bfd > -all-stage3-ld: maybe-all-stage3-bfd > -all-stage4-ld: maybe-all-stage4-bfd > -all-stageprofile-ld: maybe-all-stageprofile-bfd > -all-stagetrain-ld: maybe-all-stagetrain-bfd > -all-stagefeedback-ld: maybe-all-stagefeedback-bfd > -all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd > -all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd > all-ld: maybe-all-opcodes > all-stage1-ld: maybe-all-stage1-opcodes > all-stage2-ld: maybe-all-stage2-opcodes > Index: binutils-gdb/bfd/configure > =================================================================== > --- binutils-gdb.orig/bfd/configure > +++ binutils-gdb/bfd/configure > @@ -702,8 +702,6 @@ REPORT_BUGS_TEXI > REPORT_BUGS_TO > PKGVERSION > DEBUGDIR > -ENABLE_BFD_64_BIT_FALSE > -ENABLE_BFD_64_BIT_TRUE > PLUGINS_FALSE > PLUGINS_TRUE > LARGEFILE_CPPFLAGS > @@ -11155,7 +11153,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11158 "configure" > +#line 11156 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -11261,7 +11259,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11264 "configure" > +#line 11262 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -11930,56 +11928,6 @@ else > enable_64_bit_bfd=no > fi > > - > -if test "x$enable_64_bit_bfd" = "xno"; then : > - # The cast to long int works around a bug in the HP C Compiler > -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects > -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. > -# This bug is HP SR number 8606223364. > -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 > -$as_echo_n "checking size of void *... " >&6; } > -if ${ac_cv_sizeof_void_p+:} false; then : > - $as_echo_n "(cached) " >&6 > -else > - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : > - > -else > - if test "$ac_cv_type_void_p" = yes; then > - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > -as_fn_error 77 "cannot compute sizeof (void *) > -See \`config.log' for more details" "$LINENO" 5; } > - else > - ac_cv_sizeof_void_p=0 > - fi > -fi > - > -fi > -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 > -$as_echo "$ac_cv_sizeof_void_p" >&6; } > - > - > - > -cat >>confdefs.h <<_ACEOF > -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p > -_ACEOF > - > - > - if test "x$ac_cv_sizeof_void_p" = "x8"; then : > - enable_64_bit_bfd=yes > -fi > - > -fi > - > - if test "x$enable_64_bit_bfd" = "xyes"; then > - ENABLE_BFD_64_BIT_TRUE= > - ENABLE_BFD_64_BIT_FALSE='#' > -else > - ENABLE_BFD_64_BIT_TRUE='#' > - ENABLE_BFD_64_BIT_FALSE= > -fi > - > - > if test $enable_64_bit_bfd = yes ; then > want64=true > else > @@ -17677,10 +17625,6 @@ if test -z "${PLUGINS_TRUE}" && test -z > as_fn_error $? "conditional \"PLUGINS\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > fi > -if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then > - as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined. > -Usually this means the macro was only invoked conditionally." "$LINENO" 5 > -fi > if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then > as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > Index: binutils-gdb/bfd/configure.ac > =================================================================== > --- binutils-gdb.orig/bfd/configure.ac > +++ binutils-gdb/bfd/configure.ac > @@ -81,7 +81,13 @@ if test x$ac_checking != x ; then > AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.]) > fi > > -BFD_64_BIT > +AC_ARG_ENABLE(64-bit-bfd, > + AS_HELP_STRING([--enable-64-bit-bfd], > + [64-bit support (on hosts with narrower word sizes)]), > + [AS_CASE([$enableval], > + [yes|no], [], > + [*], [AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option)])], > + [enable_64_bit_bfd=no]) > if test $enable_64_bit_bfd = yes ; then > want64=true > else > Index: binutils-gdb/config/bfd64.m4 > =================================================================== > --- binutils-gdb.orig/config/bfd64.m4 > +++ binutils-gdb/config/bfd64.m4 > @@ -16,21 +16,27 @@ dnl along with this program; see the fil > dnl . > dnl > > -dnl See whether 64-bit bfd lib has been enabled. > +dnl Make sure your module depends on `all-bfd' when invoking this macro. > AC_DEFUN([BFD_64_BIT], [dnl > -AC_ARG_ENABLE(64-bit-bfd, > - AS_HELP_STRING([--enable-64-bit-bfd], > - [64-bit support (on hosts with narrower word sizes)]), > - [AS_CASE([$enableval], > - [yes|no], [], > - [*], [AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option)])], > - [enable_64_bit_bfd=no]) > - > -dnl If the host is 64-bit, then 64-bit bfd is enabled automatically. > -AS_IF([test "x$enable_64_bit_bfd" = "xno"], [dnl > - AC_CHECK_SIZEOF(void *) > - AS_IF([test "x$ac_cv_sizeof_void_p" = "x8"], [enable_64_bit_bfd=yes]) > -]) > - > -AM_CONDITIONAL([ENABLE_BFD_64_BIT], [test "x$enable_64_bit_bfd" = "xyes"]) > -]) > +# See whether 64-bit bfd lib has been enabled. > +OLD_CPPFLAGS=$CPPFLAGS > +# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere > +# with bfd, with -I/foo/include. We always want our bfd. > +CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS" > +AC_CACHE_CHECK([whether BFD is 64-bit], [bfd_cv_64_bit], > + [AC_EGREP_CPP( > + [HAVE_BFD64], > + AC_LANG_PROGRAM( > + [#include "bfd.h"], > + [dnl > +#ifdef BFD64 > +HAVE_BFD64 > +#endif]), > + [bfd_cv_64_bit=yes], > + [bfd_cv_64_bit=no])]) > +if test $bfd_cv_64_bit = yes; then > + have_64_bit_bfd=yes > +else > + have_64_bit_bfd=no > +fi > +CPPFLAGS=$OLD_CPPFLAGS]) > Index: binutils-gdb/gdb/configure > =================================================================== > --- binutils-gdb.orig/gdb/configure > +++ binutils-gdb/gdb/configure > @@ -761,8 +761,6 @@ TARGET_OBS > AMD_DBGAPI_LIBS > AMD_DBGAPI_CFLAGS > HAVE_GSTACK > -ENABLE_BFD_64_BIT_FALSE > -ENABLE_BFD_64_BIT_TRUE > subdirs > GDB_DATADIR > DEBUGDIR > @@ -934,7 +932,6 @@ with_relocated_sources > with_auto_load_dir > with_auto_load_safe_path > enable_targets > -enable_64_bit_bfd > with_amd_dbgapi > enable_tui > enable_gdbtk > @@ -1645,7 +1642,6 @@ if test -n "$ac_init_help"; then > --disable-nls do not use Native Language Support > --enable-targets=TARGETS > alternative target configurations > - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) > --enable-tui enable full-screen terminal user interface (TUI) > --enable-gdbtk enable gdbtk graphical user interface (GUI) > --enable-profiling enable profiling of GDB > @@ -11500,7 +11496,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11503 "configure" > +#line 11499 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -11606,7 +11602,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11609 "configure" > +#line 11605 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -24876,70 +24872,46 @@ fi > > > > -# Check whether --enable-64-bit-bfd was given. > -if test "${enable_64_bit_bfd+set}" = set; then : > - enableval=$enable_64_bit_bfd; case $enableval in #( > - yes|no) : > - ;; #( > - *) : > - as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #( > - *) : > - ;; > -esac > -else > - enable_64_bit_bfd=no > -fi > - > - > -if test "x$enable_64_bit_bfd" = "xno"; then : > - # The cast to long int works around a bug in the HP C Compiler > -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects > -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. > -# This bug is HP SR number 8606223364. > -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 > -$as_echo_n "checking size of void *... " >&6; } > -if ${ac_cv_sizeof_void_p+:} false; then : > +# See whether 64-bit bfd lib has been enabled. > +OLD_CPPFLAGS=$CPPFLAGS > +# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere > +# with bfd, with -I/foo/include. We always want our bfd. > +CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS" > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5 > +$as_echo_n "checking whether BFD is 64-bit... " >&6; } > +if ${bfd_cv_64_bit+:} false; then : > $as_echo_n "(cached) " >&6 > else > - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : > - > -else > - if test "$ac_cv_type_void_p" = yes; then > - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > -as_fn_error 77 "cannot compute sizeof (void *) > -See \`config.log' for more details" "$LINENO" 5; } > - else > - ac_cv_sizeof_void_p=0 > - fi > -fi > - > -fi > -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 > -$as_echo "$ac_cv_sizeof_void_p" >&6; } > - > - > - > -cat >>confdefs.h <<_ACEOF > -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +#include "bfd.h" > +int > +main () > +{ > +#ifdef BFD64 > +HAVE_BFD64 > +#endif > + ; > + return 0; > +} > _ACEOF > - > - > - if test "x$ac_cv_sizeof_void_p" = "x8"; then : > - enable_64_bit_bfd=yes > +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | > + $EGREP "HAVE_BFD64" >/dev/null 2>&1; then : > + bfd_cv_64_bit=yes > +else > + bfd_cv_64_bit=no > fi > +rm -f conftest* > > fi > - > - if test "x$enable_64_bit_bfd" = "xyes"; then > - ENABLE_BFD_64_BIT_TRUE= > - ENABLE_BFD_64_BIT_FALSE='#' > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_64_bit" >&5 > +$as_echo "$bfd_cv_64_bit" >&6; } > +if test $bfd_cv_64_bit = yes; then > + have_64_bit_bfd=yes > else > - ENABLE_BFD_64_BIT_TRUE='#' > - ENABLE_BFD_64_BIT_FALSE= > + have_64_bit_bfd=no > fi > - > - > +CPPFLAGS=$OLD_CPPFLAGS > > # Provide defaults for some variables set by the per-host and per-target > # configuration. > @@ -24989,7 +24961,7 @@ fi > done > > # Check whether this target needs 64-bit CORE_ADDR > - if test x${enable_64_bit_bfd} = xno; then > + if test x${have_64_bit_bfd} = xno; then > . ${srcdir}/../bfd/config.bfd > fi > > @@ -25002,19 +24974,10 @@ fi > done > > if test x${all_targets} = xtrue; then > - if test x${enable_64_bit_bfd} = xyes; then > + if test x${have_64_bit_bfd} = xyes; then > TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)' > else > - case ${host} in > - mips*) > - # If all targets were requested, but 64 bit bfd is not enabled, > - # the build will fail. See PR 28684. > - as_fn_error $? "--enable-targets=all requires --enable-64-bit-bfd" "$LINENO" 5 > - ;; > - *) > - TARGET_OBS='$(ALL_TARGET_OBS)' > - ;; > - esac > + TARGET_OBS='$(ALL_TARGET_OBS)' > fi > fi > > @@ -33895,10 +33858,6 @@ if test -z "${MAINTAINER_MODE_TRUE}" && > as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > fi > -if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then > - as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined. > -Usually this means the macro was only invoked conditionally." "$LINENO" 5 > -fi > if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then > as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > Index: binutils-gdb/gdb/configure.ac > =================================================================== > --- binutils-gdb.orig/gdb/configure.ac > +++ binutils-gdb/gdb/configure.ac > @@ -241,7 +241,7 @@ do > done > > # Check whether this target needs 64-bit CORE_ADDR > - if test x${enable_64_bit_bfd} = xno; then > + if test x${have_64_bit_bfd} = xno; then > . ${srcdir}/../bfd/config.bfd > fi > > @@ -254,19 +254,10 @@ do > done > > if test x${all_targets} = xtrue; then > - if test x${enable_64_bit_bfd} = xyes; then > + if test x${have_64_bit_bfd} = xyes; then > TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)' > else > - case ${host} in > - mips*) > - # If all targets were requested, but 64 bit bfd is not enabled, > - # the build will fail. See PR 28684. > - AC_MSG_ERROR([--enable-targets=all requires --enable-64-bit-bfd]) > - ;; > - *) > - TARGET_OBS='$(ALL_TARGET_OBS)' > - ;; > - esac > + TARGET_OBS='$(ALL_TARGET_OBS)' > fi > fi > > Index: binutils-gdb/gdb/configure.tgt > =================================================================== > --- binutils-gdb.orig/gdb/configure.tgt > +++ binutils-gdb/gdb/configure.tgt > @@ -85,7 +85,7 @@ hppa*-*-*) > > i[34567]86-*-*) > cpu_obs="${i386_tobjs}" > - if test "x$enable_64_bit_bfd" = "xyes"; then > + if test "x$have_64_bit_bfd" = "xyes"; then > cpu_obs="${amd64_tobjs} ${cpu_obs}" > fi > ;; > @@ -284,7 +284,7 @@ hppa*-*-openbsd*) > i[34567]86-*-darwin*) > # Target: Darwin/i386 > gdb_target_obs="i386-darwin-tdep.o solib-darwin.o" > - if test "x$enable_64_bit_bfd" = "xyes"; then > + if test "x$have_64_bit_bfd" = "xyes"; then > # Target: GNU/Linux x86-64 > gdb_target_obs="amd64-darwin-tdep.o ${gdb_target_obs}" > fi > @@ -319,7 +319,7 @@ i[34567]86-*-linux*) > linux-tdep.o linux-record.o \ > arch/i386-linux-tdesc.o \ > arch/x86-linux-tdesc-features.o" > - if test "x$enable_64_bit_bfd" = "xyes"; then > + if test "x$have_64_bit_bfd" = "xyes"; then > # Target: GNU/Linux x86-64 > gdb_target_obs="amd64-linux-tdep.o \ > arch/amd64-linux-tdesc.o ${gdb_target_obs}" > @@ -578,7 +578,7 @@ sparc-*-linux*) > sparc-linux-tdep.o solib-svr4.o symfile-mem.o \ > linux-tdep.o \ > ravenscar-thread.o sparc-ravenscar-thread.o" > - if test "x$enable_64_bit_bfd" = "xyes"; then > + if test "x$have_64_bit_bfd" = "xyes"; then > # Target: GNU/Linux UltraSPARC > gdb_target_obs="sparc64-tdep.o \ > sparc64-linux-tdep.o ${gdb_target_obs}" > Index: binutils-gdb/ld/configure > =================================================================== > --- binutils-gdb.orig/ld/configure > +++ binutils-gdb/ld/configure > @@ -696,8 +696,6 @@ install_as_default > TARGET_SYSTEM_ROOT_DEFINE > TARGET_SYSTEM_ROOT > use_sysroot > -ENABLE_BFD_64_BIT_FALSE > -ENABLE_BFD_64_BIT_TRUE > LARGEFILE_CPPFLAGS > CXXCPP > OTOOL64 > @@ -842,7 +840,6 @@ enable_largefile > enable_checking > with_lib_path > enable_targets > -enable_64_bit_bfd > with_sysroot > enable_gold > enable_got > @@ -1536,7 +1533,6 @@ if test -n "$ac_init_help"; then > --disable-largefile omit support for large files > --enable-checking enable run-time checks > --enable-targets alternative target configurations > - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) > --enable-gold[=ARG] build gold [ARG={default,yes,no}] > --enable-got= GOT handling scheme (target, single, negative, > multigot) > @@ -2177,189 +2173,6 @@ fi > > } # ac_fn_cxx_try_link > > -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES > -# -------------------------------------------- > -# Tries to find the compile-time value of EXPR in a program that includes > -# INCLUDES, setting VAR accordingly. Returns whether the value could be > -# computed > -ac_fn_c_compute_int () > -{ > - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack > - if test "$cross_compiling" = yes; then > - # Depending upon the size, compute the lo and hi bounds. > -cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) >= 0)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_lo=0 ac_mid=0 > - while :; do > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_hi=$ac_mid; break > -else > - as_fn_arith $ac_mid + 1 && ac_lo=$as_val > - if test $ac_lo -le $ac_mid; then > - ac_lo= ac_hi= > - break > - fi > - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > - done > -else > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) < 0)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_hi=-1 ac_mid=-1 > - while :; do > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_lo=$ac_mid; break > -else > - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val > - if test $ac_mid -le $ac_hi; then > - ac_lo= ac_hi= > - break > - fi > - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > - done > -else > - ac_lo= ac_hi= > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -# Binary search between lo and hi bounds. > -while test "x$ac_lo" != "x$ac_hi"; do > - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_hi=$ac_mid > -else > - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -done > -case $ac_lo in #(( > -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; > -'') ac_retval=1 ;; > -esac > - else > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -static long int longval () { return $2; } > -static unsigned long int ulongval () { return $2; } > -#include > -#include > -int > -main () > -{ > - > - FILE *f = fopen ("conftest.val", "w"); > - if (! f) > - return 1; > - if (($2) < 0) > - { > - long int i = longval (); > - if (i != ($2)) > - return 1; > - fprintf (f, "%ld", i); > - } > - else > - { > - unsigned long int i = ulongval (); > - if (i != ($2)) > - return 1; > - fprintf (f, "%lu", i); > - } > - /* Do not output a trailing newline, as this causes \r\n confusion > - on some platforms. */ > - return ferror (f) || fclose (f) != 0; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_run "$LINENO"; then : > - echo >>conftest.val; read $3 -else > - ac_retval=1 > -fi > -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ > - conftest.$ac_objext conftest.beam conftest.$ac_ext > -rm -f conftest.val > - > - fi > - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno > - as_fn_set_status $ac_retval > - > -} # ac_fn_c_compute_int > - > # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES > # --------------------------------------------- > # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR > @@ -11688,7 +11501,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11691 "configure" > +#line 11504 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -11794,7 +11607,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11797 "configure" > +#line 11610 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -15462,70 +15275,46 @@ fi > esac > fi > > -# Check whether --enable-64-bit-bfd was given. > -if test "${enable_64_bit_bfd+set}" = set; then : > - enableval=$enable_64_bit_bfd; case $enableval in #( > - yes|no) : > - ;; #( > - *) : > - as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #( > - *) : > - ;; > -esac > -else > - enable_64_bit_bfd=no > -fi > - > - > -if test "x$enable_64_bit_bfd" = "xno"; then : > - # The cast to long int works around a bug in the HP C Compiler > -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects > -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. > -# This bug is HP SR number 8606223364. > -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 > -$as_echo_n "checking size of void *... " >&6; } > -if ${ac_cv_sizeof_void_p+:} false; then : > +# See whether 64-bit bfd lib has been enabled. > +OLD_CPPFLAGS=$CPPFLAGS > +# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere > +# with bfd, with -I/foo/include. We always want our bfd. > +CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS" > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5 > +$as_echo_n "checking whether BFD is 64-bit... " >&6; } > +if ${bfd_cv_64_bit+:} false; then : > $as_echo_n "(cached) " >&6 > else > - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : > - > -else > - if test "$ac_cv_type_void_p" = yes; then > - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > -as_fn_error 77 "cannot compute sizeof (void *) > -See \`config.log' for more details" "$LINENO" 5; } > - else > - ac_cv_sizeof_void_p=0 > - fi > -fi > - > -fi > -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 > -$as_echo "$ac_cv_sizeof_void_p" >&6; } > - > - > - > -cat >>confdefs.h <<_ACEOF > -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +#include "bfd.h" > +int > +main () > +{ > +#ifdef BFD64 > +HAVE_BFD64 > +#endif > + ; > + return 0; > +} > _ACEOF > - > - > - if test "x$ac_cv_sizeof_void_p" = "x8"; then : > - enable_64_bit_bfd=yes > +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | > + $EGREP "HAVE_BFD64" >/dev/null 2>&1; then : > + bfd_cv_64_bit=yes > +else > + bfd_cv_64_bit=no > fi > +rm -f conftest* > > fi > - > - if test "x$enable_64_bit_bfd" = "xyes"; then > - ENABLE_BFD_64_BIT_TRUE= > - ENABLE_BFD_64_BIT_FALSE='#' > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_64_bit" >&5 > +$as_echo "$bfd_cv_64_bit" >&6; } > +if test $bfd_cv_64_bit = yes; then > + have_64_bit_bfd=yes > else > - ENABLE_BFD_64_BIT_TRUE='#' > - ENABLE_BFD_64_BIT_FALSE= > + have_64_bit_bfd=no > fi > - > - > +CPPFLAGS=$OLD_CPPFLAGS > > > # Check whether --with-sysroot was given. > @@ -19306,11 +19095,11 @@ do > EMUL=$targ_emul > fi > > - if test x${enable_64_bit_bfd} = xno; then > + if test x${have_64_bit_bfd} = xno; then > . ${srcdir}/../bfd/config.bfd > fi > > - if test x${enable_64_bit_bfd} = xyes; then > + if test x${have_64_bit_bfd} = xyes; then > targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls" > targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath" > fi > @@ -19534,7 +19323,7 @@ _ACEOF > > > if test x${all_targets} = xtrue; then > - if test x${enable_64_bit_bfd} = xyes; then > + if test x${have_64_bit_bfd} = xyes; then > EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)' > EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)' > else > @@ -19737,10 +19526,6 @@ if test -z "${am__fastdepCXX_TRUE}" && t > as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > fi > -if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then > - as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined. > -Usually this means the macro was only invoked conditionally." "$LINENO" 5 > -fi > if test -z "${ENABLE_LIBCTF_TRUE}" && test -z "${ENABLE_LIBCTF_FALSE}"; then > as_fn_error $? "conditional \"ENABLE_LIBCTF\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > Index: binutils-gdb/ld/configure.ac > =================================================================== > --- binutils-gdb.orig/ld/configure.ac > +++ binutils-gdb/ld/configure.ac > @@ -495,11 +495,11 @@ do > EMUL=$targ_emul > fi > > - if test x${enable_64_bit_bfd} = xno; then > + if test x${have_64_bit_bfd} = xno; then > . ${srcdir}/../bfd/config.bfd > fi > > - if test x${enable_64_bit_bfd} = xyes; then > + if test x${have_64_bit_bfd} = xyes; then > targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls" > targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath" > fi > @@ -686,7 +686,7 @@ AC_SUBST(TDIRS) > AM_SUBST_NOTMAKE(TDIRS) > > if test x${all_targets} = xtrue; then > - if test x${enable_64_bit_bfd} = xyes; then > + if test x${have_64_bit_bfd} = xyes; then > EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)' > EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)' > else > Index: binutils-gdb/opcodes/configure > =================================================================== > --- binutils-gdb.orig/opcodes/configure > +++ binutils-gdb/opcodes/configure > @@ -646,8 +646,6 @@ cgendir > CGEN_MAINT_FALSE > CGEN_MAINT_TRUE > HDEFINES > -ENABLE_BFD_64_BIT_FALSE > -ENABLE_BFD_64_BIT_TRUE > EXEEXT_FOR_BUILD > CC_FOR_BUILD > CATOBJEXT > @@ -819,7 +817,6 @@ with_libiconv_prefix > with_libiconv_type > with_libintl_prefix > with_libintl_type > -enable_64_bit_bfd > enable_cgen_maint > ' > ac_precious_vars='build_alias > @@ -1471,7 +1468,6 @@ if test -n "$ac_init_help"; then > --enable-install-libbfd controls installation of libbfd and related headers > --disable-nls do not use Native Language Support > --disable-rpath do not hardcode runtime library paths > - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) > --enable-cgen-maint=dir build cgen generated files > > Optional Packages: > @@ -1926,189 +1922,6 @@ $as_echo "$ac_res" >&6; } > > } # ac_fn_c_check_func > > -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES > -# -------------------------------------------- > -# Tries to find the compile-time value of EXPR in a program that includes > -# INCLUDES, setting VAR accordingly. Returns whether the value could be > -# computed > -ac_fn_c_compute_int () > -{ > - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack > - if test "$cross_compiling" = yes; then > - # Depending upon the size, compute the lo and hi bounds. > -cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) >= 0)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_lo=0 ac_mid=0 > - while :; do > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_hi=$ac_mid; break > -else > - as_fn_arith $ac_mid + 1 && ac_lo=$as_val > - if test $ac_lo -le $ac_mid; then > - ac_lo= ac_hi= > - break > - fi > - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > - done > -else > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) < 0)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_hi=-1 ac_mid=-1 > - while :; do > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_lo=$ac_mid; break > -else > - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val > - if test $ac_mid -le $ac_hi; then > - ac_lo= ac_hi= > - break > - fi > - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > - done > -else > - ac_lo= ac_hi= > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -# Binary search between lo and hi bounds. > -while test "x$ac_lo" != "x$ac_hi"; do > - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; > -test_array [0] = 0; > -return test_array [0]; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - ac_hi=$ac_mid > -else > - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -done > -case $ac_lo in #(( > -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; > -'') ac_retval=1 ;; > -esac > - else > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -static long int longval () { return $2; } > -static unsigned long int ulongval () { return $2; } > -#include > -#include > -int > -main () > -{ > - > - FILE *f = fopen ("conftest.val", "w"); > - if (! f) > - return 1; > - if (($2) < 0) > - { > - long int i = longval (); > - if (i != ($2)) > - return 1; > - fprintf (f, "%ld", i); > - } > - else > - { > - unsigned long int i = ulongval (); > - if (i != ($2)) > - return 1; > - fprintf (f, "%lu", i); > - } > - /* Do not output a trailing newline, as this causes \r\n confusion > - on some platforms. */ > - return ferror (f) || fclose (f) != 0; > - > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_run "$LINENO"; then : > - echo >>conftest.val; read $3 -else > - ac_retval=1 > -fi > -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ > - conftest.$ac_objext conftest.beam conftest.$ac_ext > -rm -f conftest.val > - > - fi > - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno > - as_fn_set_status $ac_retval > - > -} # ac_fn_c_compute_int > - > # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES > # --------------------------------------------- > # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR > @@ -11090,7 +10903,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11093 "configure" > +#line 10906 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -11196,7 +11009,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 11199 "configure" > +#line 11012 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -14025,70 +13838,46 @@ $as_echo "$bfd_cv_build_exeext" >&6; } > test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext} > fi > > -# Check whether --enable-64-bit-bfd was given. > -if test "${enable_64_bit_bfd+set}" = set; then : > - enableval=$enable_64_bit_bfd; case $enableval in #( > - yes|no) : > - ;; #( > - *) : > - as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #( > - *) : > - ;; > -esac > -else > - enable_64_bit_bfd=no > -fi > - > - > -if test "x$enable_64_bit_bfd" = "xno"; then : > - # The cast to long int works around a bug in the HP C Compiler > -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects > -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. > -# This bug is HP SR number 8606223364. > -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 > -$as_echo_n "checking size of void *... " >&6; } > -if ${ac_cv_sizeof_void_p+:} false; then : > +# See whether 64-bit bfd lib has been enabled. > +OLD_CPPFLAGS=$CPPFLAGS > +# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere > +# with bfd, with -I/foo/include. We always want our bfd. > +CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS" > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5 > +$as_echo_n "checking whether BFD is 64-bit... " >&6; } > +if ${bfd_cv_64_bit+:} false; then : > $as_echo_n "(cached) " >&6 > else > - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : > - > -else > - if test "$ac_cv_type_void_p" = yes; then > - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > -as_fn_error 77 "cannot compute sizeof (void *) > -See \`config.log' for more details" "$LINENO" 5; } > - else > - ac_cv_sizeof_void_p=0 > - fi > -fi > - > -fi > -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 > -$as_echo "$ac_cv_sizeof_void_p" >&6; } > - > - > - > -cat >>confdefs.h <<_ACEOF > -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +#include "bfd.h" > +int > +main () > +{ > +#ifdef BFD64 > +HAVE_BFD64 > +#endif > + ; > + return 0; > +} > _ACEOF > - > - > - if test "x$ac_cv_sizeof_void_p" = "x8"; then : > - enable_64_bit_bfd=yes > +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | > + $EGREP "HAVE_BFD64" >/dev/null 2>&1; then : > + bfd_cv_64_bit=yes > +else > + bfd_cv_64_bit=no > fi > +rm -f conftest* > > fi > - > - if test "x$enable_64_bit_bfd" = "xyes"; then > - ENABLE_BFD_64_BIT_TRUE= > - ENABLE_BFD_64_BIT_FALSE='#' > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_64_bit" >&5 > +$as_echo "$bfd_cv_64_bit" >&6; } > +if test $bfd_cv_64_bit = yes; then > + have_64_bit_bfd=yes > else > - ENABLE_BFD_64_BIT_TRUE='#' > - ENABLE_BFD_64_BIT_FALSE= > + have_64_bit_bfd=no > fi > - > - > +CPPFLAGS=$OLD_CPPFLAGS > > > > @@ -14567,7 +14356,7 @@ if test x${all_targets} = xfalse ; then > > else # all_targets is true > archdefs=-DARCH_all > - if test "$enable_64_bit_bfd" = "yes" ; then > + if test "$have_64_bit_bfd" = "yes" ; then > BFD_MACHINES='$(ALL32_MACHINES) $(ALL64_MACHINES)' > else > BFD_MACHINES='$(ALL32_MACHINES)' > @@ -14720,10 +14509,6 @@ if test -z "${INSTALL_LIBBFD_TRUE}" && t > as_fn_error $? "conditional \"INSTALL_LIBBFD\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > fi > -if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then > - as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined. > -Usually this means the macro was only invoked conditionally." "$LINENO" 5 > -fi > if test -z "${CGEN_MAINT_TRUE}" && test -z "${CGEN_MAINT_FALSE}"; then > as_fn_error $? "conditional \"CGEN_MAINT\" was never defined. > Usually this means the macro was only invoked conditionally." "$LINENO" 5 > Index: binutils-gdb/opcodes/configure.ac > =================================================================== > --- binutils-gdb.orig/opcodes/configure.ac > +++ binutils-gdb/opcodes/configure.ac > @@ -383,7 +383,7 @@ if test x${all_targets} = xfalse ; then > > else # all_targets is true > archdefs=-DARCH_all > - if test "$enable_64_bit_bfd" = "yes" ; then > + if test "$have_64_bit_bfd" = "yes" ; then > BFD_MACHINES='$(ALL32_MACHINES) $(ALL64_MACHINES)' > else > BFD_MACHINES='$(ALL32_MACHINES)' >