* Unable to build GDB 13.1 on Solaris 11.3 Sparc
@ 2023-03-08 21:33 Nemo Nusquam
2023-03-08 22:19 ` Rainer Orth
2023-03-08 22:43 ` Andrew Pinski
0 siblings, 2 replies; 7+ messages in thread
From: Nemo Nusquam @ 2023-03-08 21:33 UTC (permalink / raw)
To: gdb
I am trying (and failing) to build GDB 13.1 on Solaris 11.3 Sparc.
Here is my configuration script.
CXXFLAGS='-g3 -O0' \
CFLAGS='-g3 -O0' \
NM=/usr/bin/gnm \
SHELL=/usr/bin/bash \
AR=/usr/bin/gar \
AS=/usr/bin/as \
CC=/home/build/gcc/git/bin/gcc \
CXX=/home/build/gcc/git/bin/g++ \
../configure \
--with-mpc=/usr/local \
--with-gmp=/usr/local \
--with-mpfr=/usr/local \
--enable-64-bit-bfd \
--enable-tui \
--with-curses \
--disable-bootstrap \
--disable-binutils \
--disable-ld \
--disable-gprof \
--disable-gprofng \
--disable-gold \
--disable-gas \
--disable-sim
(Some flags taken from https://sourceware.org/gdb/wiki/BuildingNatively .)
The makefile creates ./gdb inside the build directory and then stops as
follows:
checking for libgmp... no
configure: error: GMP is missing or unusable
gmake[1]: *** [Makefile:11447: configure-gdb] Error 1
gmake[1]: Leaving directory '/home/build/opt/gdb-13.1/bld'
I have libgmp (and building gcc 13 uses it) in /usr/local/lib:
/usr/local/lib/libgmp.a: current ar archive, 32-bit symbol table
/usr/local/lib/libgmp.la: commands text
/usr/local/lib/libgmp.so: ELF 64-bit MSB dynamic lib SPARCV9
Version 1, UltraSPARC3 Extensions Required, dynamically linked, not
stripped, no debugging information available
/usr/local/lib/libgmp.so.10: ELF 64-bit MSB dynamic lib SPARCV9
Version 1, UltraSPARC3 Extensions Required, dynamically linked, not
stripped, no debugging information available
/usr/local/lib/libgmp.so.10.4.1: ELF 64-bit MSB dynamic lib
SPARCV9 Version 1, UltraSPARC3 Extensions Required, dynamically linked,
not stripped, no debugging information available
Now I note that the Makefile is compiling to 32-bit objects but I have a
32-bit libgmp.a. (I tried adding "-m64" but that caused other problems.)
I am stumped. How do I proceed?
N.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Unable to build GDB 13.1 on Solaris 11.3 Sparc
2023-03-08 21:33 Unable to build GDB 13.1 on Solaris 11.3 Sparc Nemo Nusquam
@ 2023-03-08 22:19 ` Rainer Orth
2023-03-09 8:08 ` Andreas Schwab
2023-03-09 18:45 ` Nemo Nusquam
2023-03-08 22:43 ` Andrew Pinski
1 sibling, 2 replies; 7+ messages in thread
From: Rainer Orth @ 2023-03-08 22:19 UTC (permalink / raw)
To: Nemo Nusquam via Gdb; +Cc: Nemo Nusquam
Nemo Nusquam via Gdb <gdb@sourceware.org> writes:
> I am trying (and failing) to build GDB 13.1 on Solaris 11.3 Sparc.
>
> Here is my configuration script.
>
> CXXFLAGS='-g3 -O0' \
> CFLAGS='-g3 -O0' \
Why? Do you want/need to debug the resulting gdb itself? Otherwise,
just leave the defaults (-g -O2).
> NM=/usr/bin/gnm \
> SHELL=/usr/bin/bash \
Probably rather CONFIG_SHELL. Btw., it's often best to have
/usr/gnu/bin before /usr/bin in $PATH: configure scripts sometimes
assume the GNU tools and fail in weird ways with the native ones.
> AR=/usr/bin/gar \
> AS=/usr/bin/as \
Unnecessary for gdb. Even when building gcc, use --with-as=/usr/bin/as
--without-gnu-as as documented in the installation guide. Relying on
$PATH is risky and fragile.
> CC=/home/build/gcc/git/bin/gcc \
> CXX=/home/build/gcc/git/bin/g++ \
I suppose this is a 32-bit-default gcc (i.e. configured for
sparc-sun-solaris2.11, not sparcv9-sun-solaris2.11)? Any reason not to
use the bundled gcc 7.3.0? That one is 64-bit-default.
> ../configure \
> --with-mpc=/usr/local \
> --with-gmp=/usr/local \
> --with-mpfr=/usr/local \
> --enable-64-bit-bfd \
> --enable-tui \
> --with-curses \
> --disable-bootstrap \
This is gcc only, thus unnecessary for a gdb build.
> --disable-binutils \
> --disable-ld \
> --disable-gprof \
> --disable-gprofng \
> --disable-gold \
> --disable-gas \
> --disable-sim
If you're building from the gdb 13.1 tarball, you can omit those. Btw.,
--disable-binutils is harmful: gdb depends on libbfd and won't link
without, as you've discovered.
> (Some flags taken from https://sourceware.org/gdb/wiki/BuildingNatively .)
In general, please start with the bare minimum of configure flags (like
the --with-* stuff). Unless you known 200% what you're doing,
additional flags usually cause more harm then anything.
> The makefile creates ./gdb inside the build directory and then stops as
> follows:
>
> checking for libgmp... no
> configure: error: GMP is missing or unusable
> gmake[1]: *** [Makefile:11447: configure-gdb] Error 1
> gmake[1]: Leaving directory '/home/build/opt/gdb-13.1/bld'
You can find the exact errors in gdb/config.log. Consulting that is
usually necessary to determine what exactly went wrong.
> I have libgmp (and building gcc 13 uses it) in /usr/local/lib:
>
> /usr/local/lib/libgmp.a: current ar archive, 32-bit symbol table
> /usr/local/lib/libgmp.la: commands text
> /usr/local/lib/libgmp.so: ELF 64-bit MSB dynamic lib SPARCV9 Version
> 1, UltraSPARC3 Extensions Required, dynamically linked, not stripped, no
> debugging information available
> /usr/local/lib/libgmp.so.10: ELF 64-bit MSB dynamic lib SPARCV9 Version
> 1, UltraSPARC3 Extensions Required, dynamically linked, not stripped, no
> debugging information available
> /usr/local/lib/libgmp.so.10.4.1: ELF 64-bit MSB dynamic lib SPARCV9
> Version 1, UltraSPARC3 Extensions Required, dynamically linked, not
> stripped, no debugging information available
>
> Now I note that the Makefile is compiling to 32-bit objects but I have a
> 32-bit libgmp.a. (I tried adding "-m64" but that caused other problems.)
Such as? Please include the details so we can help.
> I am stumped. How do I proceed?
Since your libgmp is 64-bit, you need to ensure a 64-bit build. You can
achieve this either by using a 64-bit-default gcc/g++ or adding -m64 to
CC/CXX. Adding it to CFLAGS/CXXFLAGS often doesn't work as expected,
unfortunately.
You should also add --build sparcv9-sun-solaris2.11 to the configure
flags. config.guess has been badly messed with on Solaris in recent
times and misdetects the 64-bit triple. I've given up fighting the
upstream chaos here and usually specify the correct triple explicitly.
Hope this helps.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Unable to build GDB 13.1 on Solaris 11.3 Sparc
2023-03-08 21:33 Unable to build GDB 13.1 on Solaris 11.3 Sparc Nemo Nusquam
2023-03-08 22:19 ` Rainer Orth
@ 2023-03-08 22:43 ` Andrew Pinski
2023-03-09 18:20 ` Nemo Nusquam
1 sibling, 1 reply; 7+ messages in thread
From: Andrew Pinski @ 2023-03-08 22:43 UTC (permalink / raw)
To: Nemo Nusquam; +Cc: gdb
On Wed, Mar 8, 2023 at 1:34 PM Nemo Nusquam via Gdb <gdb@sourceware.org> wrote:
>
> I am trying (and failing) to build GDB 13.1 on Solaris 11.3 Sparc.
>
> Here is my configuration script.
>
> CXXFLAGS='-g3 -O0' \
> CFLAGS='-g3 -O0' \
> NM=/usr/bin/gnm \
> SHELL=/usr/bin/bash \
> AR=/usr/bin/gar \
> AS=/usr/bin/as \
> CC=/home/build/gcc/git/bin/gcc \
> CXX=/home/build/gcc/git/bin/g++ \
> ../configure \
> --with-mpc=/usr/local \
> --with-gmp=/usr/local \
> --with-mpfr=/usr/local \
> --enable-64-bit-bfd \
> --enable-tui \
> --with-curses \
> --disable-bootstrap \
> --disable-binutils \
> --disable-ld \
> --disable-gprof \
> --disable-gprofng \
> --disable-gold \
> --disable-gas \
> --disable-sim
>
> (Some flags taken from https://sourceware.org/gdb/wiki/BuildingNatively .)
>
> The makefile creates ./gdb inside the build directory and then stops as
> follows:
>
> checking for libgmp... no
> configure: error: GMP is missing or unusable
> gmake[1]: *** [Makefile:11447: configure-gdb] Error 1
> gmake[1]: Leaving directory '/home/build/opt/gdb-13.1/bld'
This was a known issue in GDB 13.1, It has been fixed/changed on the
trunk and will be included with GDB 14. For pre-GDB 14, the option you
want to use for configure is --with-libgmp-prefix= . libmpfr is
similar you need to use --with-libmpfr-prefix .
These options are documented in the installation documentation for GDB
13 but they were not part of the toplevel configure which is why they
were not mentioned there. The options --with-gmp= and --with--mpfr=
were only originally used for building GCC (GCC, GDB, binutils [and
newlib] all share the same toplevel configure/make file system) and
this was why folks got confused and even more I made the fix for this
to use these options also for GDB.
This issue was recorded as
https://sourceware.org/bugzilla/show_bug.cgi?id=28500 .
Thanks,
Andrew Pinski
>
> I have libgmp (and building gcc 13 uses it) in /usr/local/lib:
>
> /usr/local/lib/libgmp.a: current ar archive, 32-bit symbol table
> /usr/local/lib/libgmp.la: commands text
> /usr/local/lib/libgmp.so: ELF 64-bit MSB dynamic lib SPARCV9
> Version 1, UltraSPARC3 Extensions Required, dynamically linked, not
> stripped, no debugging information available
> /usr/local/lib/libgmp.so.10: ELF 64-bit MSB dynamic lib SPARCV9
> Version 1, UltraSPARC3 Extensions Required, dynamically linked, not
> stripped, no debugging information available
> /usr/local/lib/libgmp.so.10.4.1: ELF 64-bit MSB dynamic lib
> SPARCV9 Version 1, UltraSPARC3 Extensions Required, dynamically linked,
> not stripped, no debugging information available
>
> Now I note that the Makefile is compiling to 32-bit objects but I have a
> 32-bit libgmp.a. (I tried adding "-m64" but that caused other problems.)
>
> I am stumped. How do I proceed?
>
> N.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Unable to build GDB 13.1 on Solaris 11.3 Sparc
2023-03-08 22:19 ` Rainer Orth
@ 2023-03-09 8:08 ` Andreas Schwab
2023-03-09 10:37 ` Rainer Orth
2023-03-09 18:45 ` Nemo Nusquam
1 sibling, 1 reply; 7+ messages in thread
From: Andreas Schwab @ 2023-03-09 8:08 UTC (permalink / raw)
To: Rainer Orth; +Cc: Nemo Nusquam via Gdb, Nemo Nusquam
On Mär 08 2023, Rainer Orth wrote:
> If you're building from the gdb 13.1 tarball, you can omit those. Btw.,
> --disable-binutils is harmful: gdb depends on libbfd and won't link
> without, as you've discovered.
--disable-binutils does not disable building bfd (binutils is just
another consumer of bfd, like gdb), and will not do any harm.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Unable to build GDB 13.1 on Solaris 11.3 Sparc
2023-03-09 8:08 ` Andreas Schwab
@ 2023-03-09 10:37 ` Rainer Orth
0 siblings, 0 replies; 7+ messages in thread
From: Rainer Orth @ 2023-03-09 10:37 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Nemo Nusquam via Gdb, Nemo Nusquam
Andreas Schwab <schwab@suse.de> writes:
> On Mär 08 2023, Rainer Orth wrote:
>
>> If you're building from the gdb 13.1 tarball, you can omit those. Btw.,
>> --disable-binutils is harmful: gdb depends on libbfd and won't link
>> without, as you've discovered.
>
> --disable-binutils does not disable building bfd (binutils is just
> another consumer of bfd, like gdb), and will not do any harm.
True, sorry for the confusion. However, my point stands: none of those
--disable-* options are needed when building from a tarball, and keeping
configure lines as simple as possible unless proven otherwise has more
often than not proven to help things.
It's only when you build from a git checkout that they help reduce build
time, but still aren't strictly necessary.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Unable to build GDB 13.1 on Solaris 11.3 Sparc
2023-03-08 22:43 ` Andrew Pinski
@ 2023-03-09 18:20 ` Nemo Nusquam
0 siblings, 0 replies; 7+ messages in thread
From: Nemo Nusquam @ 2023-03-09 18:20 UTC (permalink / raw)
To: Andrew Pinski; +Cc: gdb
On 2023-03-08 17:43, Andrew Pinski wrote:
> On Wed, Mar 8, 2023 at 1:34 PM Nemo Nusquam via Gdb <gdb@sourceware.org> wrote:
>> I am trying (and failing) to build GDB 13.1 on Solaris 11.3 Sparc.
>>
>> Here is my configuration script.
>>
>> CXXFLAGS='-g3 -O0' \
>> CFLAGS='-g3 -O0' \
>> NM=/usr/bin/gnm \
>> SHELL=/usr/bin/bash \
>> AR=/usr/bin/gar \
>> AS=/usr/bin/as \
>> CC=/home/build/gcc/git/bin/gcc \
>> CXX=/home/build/gcc/git/bin/g++ \
>> ../configure \
>> --with-mpc=/usr/local \
>> --with-gmp=/usr/local \
>> --with-mpfr=/usr/local \
>> --enable-64-bit-bfd \
>> --enable-tui \
>> --with-curses \
>> --disable-bootstrap \
>> --disable-binutils \
>> --disable-ld \
>> --disable-gprof \
>> --disable-gprofng \
>> --disable-gold \
>> --disable-gas \
>> --disable-sim
>>
>> (Some flags taken from https://sourceware.org/gdb/wiki/BuildingNatively .)
>>
>> The makefile creates ./gdb inside the build directory and then stops as
>> follows:
>>
>> checking for libgmp... no
>> configure: error: GMP is missing or unusable
>> gmake[1]: *** [Makefile:11447: configure-gdb] Error 1
>> gmake[1]: Leaving directory '/home/build/opt/gdb-13.1/bld'
> This was a known issue in GDB 13.1, It has been fixed/changed on the
> trunk and will be included with GDB 14. For pre-GDB 14, the option you
> want to use for configure is --with-libgmp-prefix= . libmpfr is
> similar you need to use --with-libmpfr-prefix .
> These options are documented in the installation documentation for GDB
> 13 but they were not part of the toplevel configure which is why they
> were not mentioned there. The options --with-gmp= and --with--mpfr=
> were only originally used for building GCC (GCC, GDB, binutils [and
> newlib] all share the same toplevel configure/make file system) and
> this was why folks got confused and even more I made the fix for this
> to use these options also for GDB.
Thank you, Andrew. I will try rebuilding as you suggest.
> This issue was recorded as
> https://sourceware.org/bugzilla/show_bug.cgi?id=28500 .
I tried searching but I erroneously assumed it was a Solaris problem and
found nothing relevant.
> Thanks,
> Andrew Pinski
Thank you,
N.
[...]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Unable to build GDB 13.1 on Solaris 11.3 Sparc
2023-03-08 22:19 ` Rainer Orth
2023-03-09 8:08 ` Andreas Schwab
@ 2023-03-09 18:45 ` Nemo Nusquam
1 sibling, 0 replies; 7+ messages in thread
From: Nemo Nusquam @ 2023-03-09 18:45 UTC (permalink / raw)
To: Rainer Orth; +Cc: gdb
On 2023-03-08 17:19, Rainer Orth wrote (in part):
> Nemo Nusquam via Gdb <gdb@sourceware.org> writes:
>
> > > I am trying (and failing) to build GDB 13.1 on Solaris 11.3 Sparc.
> > >
> > > Here is my configuration script.
> > >
> > > CXXFLAGS='-g3 -O0' \
> > > CFLAGS='-g3 -O0' \
>
> Why? Do you want/need to debug the resulting gdb itself? Otherwise,
> just leave the defaults (-g -O2).
These options are those specified on the GDB Wiki
(https://sourceware.org/gdb/wiki/BuildingNatively).
> > > NM=/usr/bin/gnm \
> > > SHELL=/usr/bin/bash \
>
> Probably rather CONFIG_SHELL. Btw., it's often best to have
> /usr/gnu/bin before /usr/bin in $PATH: configure scripts sometimes
> assume the GNU tools and fail in weird ways with the native ones.
>
> > > AR=/usr/bin/gar \
> > > AS=/usr/bin/as \
>
> Unnecessary for gdb.
The gar options are different than the ar options. Specifying AR
seems necessary.
> Even when building gcc, use --with-as=/usr/bin/as
> --without-gnu-as as documented in the installation guide. Relying on
> $PATH is risky and fragile.
Noted though I have built dozens of different versions of GCC this way.
> > > CC=/home/build/gcc/git/bin/gcc \
> > > CXX=/home/build/gcc/git/bin/g++ \
>
> I suppose this is a 32-bit-default gcc (i.e. configured for
> sparc-sun-solaris2.11, not sparcv9-sun-solaris2.11)? Any reason not to
> use the bundled gcc 7.3.0? That one is 64-bit-default.
Solaris 11.3 came bundled with gcc-4.8.2. I relied on config.guess,
which specifies sparc-sun-solaris2.11. I shall try sparcv9-sun-solaris2.11.
> > > ../configure \
> > > --with-mpc=/usr/local \
> > > --with-gmp=/usr/local \
> > > --with-mpfr=/usr/local \
> > > --enable-64-bit-bfd \
> > > --enable-tui \
> > > --with-curses \
> > > --disable-bootstrap \
>
> This is gcc only, thus unnecessary for a gdb build.
Noted.
> > > --disable-binutils \
> > > --disable-ld \
> > > --disable-gprof \
> > > --disable-gprofng \
> > > --disable-gold \
> > > --disable-gas \
> > > --disable-sim
>
> If you're building from the gdb 13.1 tarball, you can omit those.
Again, the options were taken from the GDB Wiki.
> Btw.,
> --disable-binutils is harmful: gdb depends on libbfd and won't link
> without, as you've discovered.
Again, the option was taken from the GDB Wiki.
> > > (Some flags taken from
https://sourceware.org/gdb/wiki/BuildingNatively .)
>
> In general, please start with the bare minimum of configure flags (like
> the --with-* stuff). Unless you known 200% what you're doing,
> additional flags usually cause more harm then anything.
Noted.
> Hope this helps.
>
> Rainer
>
Thank you.
Sincerely,
N.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-03-09 18:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-08 21:33 Unable to build GDB 13.1 on Solaris 11.3 Sparc Nemo Nusquam
2023-03-08 22:19 ` Rainer Orth
2023-03-09 8:08 ` Andreas Schwab
2023-03-09 10:37 ` Rainer Orth
2023-03-09 18:45 ` Nemo Nusquam
2023-03-08 22:43 ` Andrew Pinski
2023-03-09 18:20 ` Nemo Nusquam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).