From mboxrd@z Thu Jan 1 00:00:00 1970 From: patrick To: martin@mira.isdn.cs.tu-berlin.de (Martin v. Loewis) Cc: egcs@egcs.cygnus.com (egcs list) Subject: Re: Problems with linking older libraries Date: Mon, 31 May 1999 21:36:00 -0000 Message-ID: <199905070230.TAA17858@3eye.boxsoft.com> References: <199905062237.AAA00606@mira.isdn.cs.tu-berlin.de> X-SW-Source: 1999-05n/msg00187.html Message-ID: <19990531213600.gquy5IW2hrcaJwljtasANXlDfuOBbibNQUr1sXwLVSE@z> Hello, Sometime in the late 1900s it was said: sid> Is there a good reason/logic behind breaking binary compatibility sid> from version to version? Martin> You don't seem to have much trust into people doing compiler Martin> development. Do you think they break binary compatibility just for the Martin> fun of it? Martin> There are always good reasons for breaking it. Typically, a serious Martin> bug can be only fixed by breaking the ABI. In case of egcs 1.1, Martin> exception handling was not thread-safe in 1.0. In case of egcs 1.2, Martin> the standard template library shipped with egcs 1.1 did not comply Martin> with the standard. You know, I understand what you are trying to say. But as a developer even though I do see what you mean, at the same time I am trying to point out my perspective of this problem. In a way you are saying (almost to the point of forcing) that every piece of code going into the development of an application *must* be compiled by a certain compiler. This means I no longer have a choice of picking and choosing available 3rd party libraries to include in an application I am involved in developing (I am talking about non- open source libraries here). I think everyone would agree that it would be quite unreasonable for a small company to call Oracle up and tell them that they must provide egcs-{insert version here} compiled libraries of their software since the company's developers can't link their application with the provided C libraries for Oracle, which seem to be compiled by a different compiler or even a different version of the egcs compiler. This type of a situation leaves one no choice but to be bound by the compiler the 3rd party vendor used to develop their products. Please do *not* get me wrong. I totally appreciate what individual professionals like yourself are doing with egcs' development. I am certain everyone knows the great benefits we derive from a very capable and freely available compiler for our systems. However, I am wondering if situations like I described above should not be given more consideration? I work for (well used to work for) a major US bank. Fortunately we were big enough to be able to use our "weight" to get our vendor to consider using gcc to work around a problem we were running into with their library, which later was determined to be mis-information in their library documentation -- pointed out after weeks of fruitless finger-pointing to compilers and ego-belittling. But I doubt we would have similar impact on a bigger vendor like Oracle, for example. Consider this: These binary-compatibility breaks seem to introduce a new factor in development/deployment targets. Not only do we have to consider architecture and operating systems (as before) we now must consider the compiler as well. This seems quite skrange to me. But please please, do not under-estimate my greatfulness for egcs and its developers! Best regards, patrick@boxsoft.com sidster@drink.com