[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#944736: marked as done (gcc-9 doesn't link properly when using ld.bfd)



Your message dated Thu, 14 Nov 2019 15:34:04 +0100
with message-id <85bbcb8e-6b06-5457-392f-3c0e0860d6b1@debian.org>
and subject line Re: Bug#944736: gcc-9 doesn't link properly when using ld.bfd
has caused the Debian Bug report #944736,
regarding gcc-9 doesn't link properly when using ld.bfd
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
944736: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=944736
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: gcc-9
Version: 9.2.1-19
Severity: important

Dear Maintainer,

When compiling this short example:

/* a.c begins here */
#include <stdio.h>
#include <gmp.h>

int main(void) {
  mpf_t  y;
  mpf_init2(y, 128);
  mpf_sqrt_ui(y, 2UL);
  gmp_printf("%.*Ff\n", 38, y);
  return 0;
}
/* a.c ends here */

with the command :
     $ gcc -lgmp a.c

gcc produces this error:
    /usr/bin/ld: /tmp/cclW7Wdd.o: in function `main':
    a.c:(.text+0x15): undefined reference to `__gmpf_init2'
    /usr/bin/ld: a.c:(.text+0x26): undefined reference to `__gmpf_sqrt_ui'
    /usr/bin/ld: a.c:(.text+0x43): undefined reference to `__gmp_printf'
    collect2: error: ld returned 1 exit status

Notice, libgmp is installed, according to this commands:
        $ apt-cache policy libgmp-dev
returns:
  libgmp-dev:
  Installed: 2:6.1.2+dfsg-4
  Candidate: 2:6.1.2+dfsg-4
  Version table:
  *** 2:6.1.2+dfsg-4 900
        900 https://deb.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status

But that works as exepected when compiling with clang, and with gcc-8.
That also works with the command:
     $ gcc -fuse-ld=gold -lgmp a.c
It was also successful when I tried with lld from the package lld-8.

I have obtained the same results with th following snippets:
/* b.c begins here */
#include <glib.h>

int main(void) {
  gchar *str="Just a string";
  gchar *str2;
  str2 = g_strdup(str);
  return 0;
}
/* b.c ends here */
I compiled the latter with:
     $ gcc $(pkg-configs --cflags --libs glib-2.0) b.c
which returns:
    /usr/bin/ld: /tmp/ccuQaGQ7.o: in function `main':
    b.c:(.text+0x1b): undefined reference to `g_strdup'
    collect2: error: ld returned 1 exit status

But that linked properly with ld.gold and lld-8.

I can't figure out how to correct this issue. One can
symlinks /usr/bin/ld to /usr/bin/ld.gold to not have to pass
--fuse-ld=gold, but this is twisted. The default bfd linker should
work.

Cheers
--
Gilles Crèvecœur



-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (900, 'unstable'), (100, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.3.1-e1 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages gcc-9 depends on:
ii  binutils      2.33.1-2
ii  cpp-9         9.2.1-19
ii  gcc-9-base    9.2.1-19
ii  libc6         2.29-3
ii  libcc1-0      9.2.1-19
ii  libgcc-9-dev  9.2.1-19
ii  libgcc1       1:9.2.1-19
ii  libgmp10      2:6.1.2+dfsg-4
ii  libisl21      0.21-2
ii  libmpc3       1.1.0-1
ii  libmpfr6      4.0.2-1
ii  libstdc++6    9.2.1-19
ii  zlib1g        1:1.2.11.dfsg-1+b1

Versions of packages gcc-9 recommends:
ii  libc6-dev  2.29-3

Versions of packages gcc-9 suggests:
ii  gcc-9-doc         9.2.0-1
ii  gcc-9-locales     9.2.1-19
pn  gcc-9-multilib    <none>
pn  libasan5-dbg      <none>
pn  libatomic1-dbg    <none>
pn  libgcc1-dbg       <none>
pn  libgomp1-dbg      <none>
pn  libitm1-dbg       <none>
pn  liblsan0-dbg      <none>
pn  libquadmath0-dbg  <none>
pn  libtsan0-dbg      <none>
pn  libubsan1-dbg     <none>

-- no debconf information

--- End Message ---
--- Begin Message ---
On 14.11.19 15:05, Gilles Crèvecœur wrote:
> Package: gcc-9
> Version: 9.2.1-19
> Severity: important
> 
> Dear Maintainer,
> 
> When compiling this short example:
> 
> /* a.c begins here */
> #include <stdio.h>
> #include <gmp.h>
> 
> int main(void) {
>   mpf_t  y;
>   mpf_init2(y, 128);
>   mpf_sqrt_ui(y, 2UL);
>   gmp_printf("%.*Ff\n", 38, y);
>   return 0;
> }
> /* a.c ends here */
> 
> with the command :
>      $ gcc -lgmp a.c
> 
> gcc produces this error:
>     /usr/bin/ld: /tmp/cclW7Wdd.o: in function `main':
>     a.c:(.text+0x15): undefined reference to `__gmpf_init2'
>     /usr/bin/ld: a.c:(.text+0x26): undefined reference to `__gmpf_sqrt_ui'
>     /usr/bin/ld: a.c:(.text+0x43): undefined reference to `__gmp_printf'
>     collect2: error: ld returned 1 exit status

this is expected. --as-needed is now the default. when seeing -lgmp on the
command line, there are no undefined references to __gmp_* yet.

--- End Message ---

Reply to: