This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: GCC 3.0 Release Criteria


>>>>> "Chip" == Chip Salzenberg <chip@valinux.com> writes:

Chip> According to Joerg Faschingbauer:
>> The reason why I am asking is that the --enable-shared of current
>> releases (making libstdc++ a shared library) is mostly useless for
>> serious development. Releasing my programs, I cannot expect libstdc++
>> - generated with the same compiler version that I use to build with -
>> be present at the customer's site.

Chip> Straw man, I think.  If by "serious" you mean "targeting unknown
Chip> systems", then you probably want to link with static libc also, yes?

Don't tell me this!

- First, usually every system - even unknown - has a libc installed
  somewhere around (which tries to be bincompatible as far as possible
  - but read on). This is not generally the case with libstdc++, is
  it? Solution: libstdc++.a.

- Second, from what I heard - correct me if I'm wrong - you must build
  libstdc++ with the same compiler you use to build your program
  with. So, when I build my program with gcc 2.95.2 and deliver it to
  an "unknown" system which happens to have a egcs-1.0.3-built
  libstdc++.so, there's no guarantee that it works. Solution:
  libstdc++.a.

- Third (no joke), because of an incompatibility (I assume in libio)
  introduced somewhere between glibc 2.0.6 and 2.1.<dunno>, the
  programs linked statically against the libstdc++.a (which was built
  against glibc 2.0.6) failed running on a 2.1.<dunno> system. Of
  course, employing libstdc++.so would have solved this, but
  unfortunately there's the second point above. Solution: link libc
  static. (Mad laughter here!)

That's how we deliver current releases. I'm confident that, for future
releases, we can require customers to have a glibc 2.1 system,
assuming things to settle and stabilize. We would then take the
dynamic libc, but still the static libstdc++ unless convinced
otherwise.

Understand my point? And why I complain when I hear about libgcc
becoming shared? (Don't say you don't please!)

Joerg

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]