--- Begin Message ---
Package: gcc-4.1
Version: 4.1.2-12
Severity: serious
I am not a package maintainer but think that this might be of interest
to you. There appears to be a problem when trying to link static libraries
using gcc on Debian amd64. The linker tries to link gcc (statically?)
and claims that it cannot find libgcc_s. This seems to be true
whether I use the gcc-4.1-multilib packages or other gcc packages
available for the and64 platform. Here is an
example for a simple program that uses libgd (attached)
% gcc -Wl,-Bstatic -lgd -o codehop-gr codehop-gr.c
/usr/bin/ld: cannot find -lgcc_s
The program compiles and works fine if I compile as follows:
% gcc -lgd -o codehop-gr codehop-gr.c
I have experienced the same problem when I remove the gcc-4.1 package
and install gcc-4.1-multilib as well as when I have only gcc-3.3
installed. This could be a problem for those who must link against
projects that only have static libraries available.
Thanks for your hard work. -rdb
Here is some information that might be helpful; system information follows:
% ll `locate gcc`
-rwxr-xr-x 1 root root 839K 2007-07-09 11:59
/opt/Downloads/gcc/gcc-3.3.6/gcc/32/libgcc_s.so.1
lrwxrwxrwx 1 root root 16 2007-07-09 11:59
/opt/Downloads/gcc/gcc-3.3.6/gcc/libgcc_s_32.so -> 32/libgcc_s.so.1
lrwxrwxrwx 1 root staff 13 2007-07-09 11:59
/usr/local/lib64/libgcc_s.so -> libgcc_s.so.1
-rw-r--r-- 1 root staff 871K 2007-07-09 11:59 /usr/local/lib64/libgcc_s.so.1
lrwxrwxrwx 1 root staff 13 2007-07-09 11:59
/usr/local/lib/libgcc_s_32.so -> libgcc_s.so.1
-rw-r--r-- 1 root staff 839K 2007-07-09 11:59 /usr/local/lib/libgcc_s.so.1
lrwxrwxrwx 1 root root 13 2007-07-09 11:36
/opt/Downloads/gcc/gcc-3.3.6/gcc/libgcc_s.so -> libgcc_s.so.1
-rwxr-xr-x 1 root root 871K 2007-07-09 11:36
/opt/Downloads/gcc/gcc-3.3.6/gcc/libgcc_s.so.1
-rwxr-xr-x 1 root root 839K 2007-07-09 11:33
/opt/Downloads/gcc/gcc-3.3.6/gcc/stage2/libgcc_s_32.so
-rwxr-xr-x 1 root root 871K 2007-07-09 11:33
/opt/Downloads/gcc/gcc-3.3.6/gcc/stage2/libgcc_s.so
-rwxr-xr-x 1 root root 839K 2007-07-09 11:28
/opt/Downloads/gcc/gcc-3.3.6/gcc/stage1/libgcc_s_32.so
-rwxr-xr-x 1 root root 871K 2007-07-09 11:28
/opt/Downloads/gcc/gcc-3.3.6/gcc/stage1/libgcc_s.so
lrwxrwxrwx 1 root root 18 2007-07-09 09:17
/usr/lib/gcc/x86_64-linux-gnu/4.2/libgcc_s.so -> /lib/libgcc_s.so.1
lrwxrwxrwx 1 root root 24 2007-07-09 08:59
/usr/lib/gcc/x86_64-linux-gnu/4.1.2/32/libgcc_s.so ->
../../4.1/32/libgcc_s.so
lrwxrwxrwx 1 root root 18 2007-07-09 08:59
/usr/lib/gcc/x86_64-linux-gnu/4.1.2/libgcc_s.so -> ../4.1/libgcc_s.so
lrwxrwxrwx 1 root root 38 2007-07-09 08:59
/usr/lib/gcc/x86_64-linux-gnu/4.1/32/libgcc_s.so ->
/emul/ia32-linux/usr/lib/libgcc_s.so.1
lrwxrwxrwx 1 root root 38 2007-07-09 08:59
/usr/lib/gcc/x86_64-linux-gnu/4.1/libgcc_s_32.so ->
/emul/ia32-linux/usr/lib/libgcc_s.so.1
lrwxrwxrwx 1 root root 18 2007-07-09 08:59
/usr/lib/gcc/x86_64-linux-gnu/4.1/libgcc_s.so -> /lib/libgcc_s.so.1
-rw-r--r-- 1 root root 41K 2007-07-07 13:27
/emul/ia32-linux/usr/lib/libgcc_s.so.1
-rw-r--r-- 1 root root 55K 2007-07-07 13:27 /lib/libgcc_s.so.1
# ldconfig -p | grep gcc
libstlport_gcc.so.4.6 (libc6,x86-64) =>
/usr/lib/libstlport_gcc.so.4.6
libgccpp.so.1 (libc6,x86-64) => /usr/lib/libgccpp.so.1
libgcc_s.so.1 (libc6,x86-64) => /lib/libgcc_s.so.1
libgcc_s.so.1 (libc6) => /usr/lib32/libgcc_s.so.1
libgcc_s.so (libc6,x86-64) => /usr/lib/libgcc_s.so
# dpkg -l gcc
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
uppercase=bad)
||/ Name Version Description
+++-========================-========================-================================================================
ii gcc 4.1.1-15 The GNU C compiler
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-amd64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages gcc-4.1-multilib depends on:
ii gcc-4.1 4.1.2-12 The GNU C compiler
ii gcc-4.1-base 4.1.2-12 The GNU Compiler Collection
(base
ii lib32gcc1 1:4.2-20070707-1 GCC support library (32 bit
Versio
ii libc6-dev-i386 2.6-1 GNU C Library: 32bit
development l
gcc-4.1-multilib recommends no packages.
-- no debconf information
#include <stdio.h>
#include "gd.h"
#include "gdfontg.h"
int main(void)
{
/* Declare the image */
gdImagePtr im;
/* Declare output files */
FILE *pngout;
/* Declare color indexes */
int black, white;
int red, green, blue;
/* Allocate the image: 64 pixels across by 64 pixels tall */
im = gdImageCreate(900, 300);
/* make white the first color */
white = gdImageColorAllocate(im, 255, 255, 255);
/* we need a black pen */
black = gdImageColorAllocate(im, 0, 0, 0);
/* a line representing the nucleotide */
gdImageLine(im, 0, 150, 899, 150, black);
/* dome decoration */
red = gdImageColorAllocate(im, 255, 0, 0);
green = gdImageColorAllocate(im, 0, 255, 0);
blue = gdImageColorAllocate(im, 0, 0, 255);
gdImageString(im, gdFontGiant, 5, 160,
(unsigned char *) "5'", red);
gdImageString(im, gdFontGiant, 880, 160,
(unsigned char *) "3'", red);
/* the rectangles representing the blocks */
gdImageLine(im, 50, 100, 420, 100, black);
gdImageLine(im, 420, 100, 420, 200, black);
gdImageLine(im, 420, 200, 50, 200, black);
gdImageLine(im, 50, 200, 50, 100, black);
gdImageString(im, gdFontGiant, 320, 175,
(unsigned char *) "ACBP-A", black);
/* write the image */
pngout = fopen("codehop-gr.png", "wb");
gdImagePng(im, pngout);
fclose(pngout);
/* Destroy the image in memory. */
gdImageDestroy(im);
}
--- End Message ---
--- Begin Message ---
this is not a bug; you shouldn't fool the driver by bypassing random
linker flags; see gcc(1) for the flags used for statically linking libs.
Richard Boyce writes:
> Package: gcc-4.1
> Version: 4.1.2-12
> Severity: serious
>
> I am not a package maintainer but think that this might be of interest
> to you. There appears to be a problem when trying to link static libraries
> using gcc on Debian amd64. The linker tries to link gcc (statically?)
> and claims that it cannot find libgcc_s. This seems to be true
> whether I use the gcc-4.1-multilib packages or other gcc packages
> available for the and64 platform. Here is an
> example for a simple program that uses libgd (attached)
>
> % gcc -Wl,-Bstatic -lgd -o codehop-gr codehop-gr.c
> /usr/bin/ld: cannot find -lgcc_s
>
> The program compiles and works fine if I compile as follows:
>
> % gcc -lgd -o codehop-gr codehop-gr.c
>
> I have experienced the same problem when I remove the gcc-4.1 package
> and install gcc-4.1-multilib as well as when I have only gcc-3.3
> installed. This could be a problem for those who must link against
> projects that only have static libraries available.
>
> Thanks for your hard work. -rdb
>
> Here is some information that might be helpful; system information follows:
>
> % ll `locate gcc`
> -rwxr-xr-x 1 root root 839K 2007-07-09 11:59
> /opt/Downloads/gcc/gcc-3.3.6/gcc/32/libgcc_s.so.1
> lrwxrwxrwx 1 root root 16 2007-07-09 11:59
> /opt/Downloads/gcc/gcc-3.3.6/gcc/libgcc_s_32.so -> 32/libgcc_s.so.1
> lrwxrwxrwx 1 root staff 13 2007-07-09 11:59
> /usr/local/lib64/libgcc_s.so -> libgcc_s.so.1
> -rw-r--r-- 1 root staff 871K 2007-07-09 11:59 /usr/local/lib64/libgcc_s.so.1
> lrwxrwxrwx 1 root staff 13 2007-07-09 11:59
> /usr/local/lib/libgcc_s_32.so -> libgcc_s.so.1
> -rw-r--r-- 1 root staff 839K 2007-07-09 11:59 /usr/local/lib/libgcc_s.so.1
> lrwxrwxrwx 1 root root 13 2007-07-09 11:36
> /opt/Downloads/gcc/gcc-3.3.6/gcc/libgcc_s.so -> libgcc_s.so.1
> -rwxr-xr-x 1 root root 871K 2007-07-09 11:36
> /opt/Downloads/gcc/gcc-3.3.6/gcc/libgcc_s.so.1
> -rwxr-xr-x 1 root root 839K 2007-07-09 11:33
> /opt/Downloads/gcc/gcc-3.3.6/gcc/stage2/libgcc_s_32.so
> -rwxr-xr-x 1 root root 871K 2007-07-09 11:33
> /opt/Downloads/gcc/gcc-3.3.6/gcc/stage2/libgcc_s.so
> -rwxr-xr-x 1 root root 839K 2007-07-09 11:28
> /opt/Downloads/gcc/gcc-3.3.6/gcc/stage1/libgcc_s_32.so
> -rwxr-xr-x 1 root root 871K 2007-07-09 11:28
> /opt/Downloads/gcc/gcc-3.3.6/gcc/stage1/libgcc_s.so
> lrwxrwxrwx 1 root root 18 2007-07-09 09:17
> /usr/lib/gcc/x86_64-linux-gnu/4.2/libgcc_s.so -> /lib/libgcc_s.so.1
> lrwxrwxrwx 1 root root 24 2007-07-09 08:59
> /usr/lib/gcc/x86_64-linux-gnu/4.1.2/32/libgcc_s.so ->
> ../../4.1/32/libgcc_s.so
> lrwxrwxrwx 1 root root 18 2007-07-09 08:59
> /usr/lib/gcc/x86_64-linux-gnu/4.1.2/libgcc_s.so -> ../4.1/libgcc_s.so
> lrwxrwxrwx 1 root root 38 2007-07-09 08:59
> /usr/lib/gcc/x86_64-linux-gnu/4.1/32/libgcc_s.so ->
> /emul/ia32-linux/usr/lib/libgcc_s.so.1
> lrwxrwxrwx 1 root root 38 2007-07-09 08:59
> /usr/lib/gcc/x86_64-linux-gnu/4.1/libgcc_s_32.so ->
> /emul/ia32-linux/usr/lib/libgcc_s.so.1
> lrwxrwxrwx 1 root root 18 2007-07-09 08:59
> /usr/lib/gcc/x86_64-linux-gnu/4.1/libgcc_s.so -> /lib/libgcc_s.so.1
> -rw-r--r-- 1 root root 41K 2007-07-07 13:27
> /emul/ia32-linux/usr/lib/libgcc_s.so.1
> -rw-r--r-- 1 root root 55K 2007-07-07 13:27 /lib/libgcc_s.so.1
>
>
> # ldconfig -p | grep gcc
> libstlport_gcc.so.4.6 (libc6,x86-64) =>
> /usr/lib/libstlport_gcc.so.4.6
> libgccpp.so.1 (libc6,x86-64) => /usr/lib/libgccpp.so.1
> libgcc_s.so.1 (libc6,x86-64) => /lib/libgcc_s.so.1
> libgcc_s.so.1 (libc6) => /usr/lib32/libgcc_s.so.1
> libgcc_s.so (libc6,x86-64) => /usr/lib/libgcc_s.so
>
> # dpkg -l gcc
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
> uppercase=bad)
> ||/ Name Version Description
> +++-========================-========================-================================================================
> ii gcc 4.1.1-15 The GNU C compiler
>
>
> -- System Information:
> Debian Release: 4.0
> APT prefers stable
> APT policy: (500, 'stable')
> Architecture: amd64 (x86_64)
> Shell: /bin/sh linked to /bin/bash
> Kernel: Linux 2.6.17-2-amd64
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
>
> Versions of packages gcc-4.1-multilib depends on:
> ii gcc-4.1 4.1.2-12 The GNU C compiler
> ii gcc-4.1-base 4.1.2-12 The GNU Compiler Collection
> (base
> ii lib32gcc1 1:4.2-20070707-1 GCC support library (32 bit
> Versio
> ii libc6-dev-i386 2.6-1 GNU C Library: 32bit
> development l
>
> gcc-4.1-multilib recommends no packages.
>
> -- no debconf information
>
> #include <stdio.h>
> #include "gd.h"
> #include "gdfontg.h"
>
> int main(void)
> {
> /* Declare the image */
> gdImagePtr im;
> /* Declare output files */
> FILE *pngout;
>
> /* Declare color indexes */
> int black, white;
> int red, green, blue;
>
> /* Allocate the image: 64 pixels across by 64 pixels tall */
> im = gdImageCreate(900, 300);
>
> /* make white the first color */
> white = gdImageColorAllocate(im, 255, 255, 255);
>
> /* we need a black pen */
> black = gdImageColorAllocate(im, 0, 0, 0);
>
> /* a line representing the nucleotide */
> gdImageLine(im, 0, 150, 899, 150, black);
>
> /* dome decoration */
> red = gdImageColorAllocate(im, 255, 0, 0);
> green = gdImageColorAllocate(im, 0, 255, 0);
> blue = gdImageColorAllocate(im, 0, 0, 255);
>
> gdImageString(im, gdFontGiant, 5, 160,
> (unsigned char *) "5'", red);
>
> gdImageString(im, gdFontGiant, 880, 160,
> (unsigned char *) "3'", red);
>
> /* the rectangles representing the blocks */
> gdImageLine(im, 50, 100, 420, 100, black);
> gdImageLine(im, 420, 100, 420, 200, black);
> gdImageLine(im, 420, 200, 50, 200, black);
> gdImageLine(im, 50, 200, 50, 100, black);
>
> gdImageString(im, gdFontGiant, 320, 175,
> (unsigned char *) "ACBP-A", black);
>
> /* write the image */
> pngout = fopen("codehop-gr.png", "wb");
> gdImagePng(im, pngout);
> fclose(pngout);
>
> /* Destroy the image in memory. */
> gdImageDestroy(im);
>
> }
--- End Message ---