This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Remove libstdc++ from cygwin1.dll build

I had some problems building the cygwin1.dll after i changed gcc to use
sjlj exceptions. The resulting dll was unusable.

I have discovered that this is due to the fact that cygwin1 is linked
against libstdc++. The only reasons why cygwin1 is linked against stdc++
are the operators new and delete and __cxa_pure_virtual.

IMHO this is not acceptable because the new and new[] operators will throw
exceptions if the memory allocation has failed. C programs will terminate
via abort because the exception is not caught, C++ programs might behave

A possible solution might be to use the nothrow new operators, i think
that the cleanest way is to define own operators. As a side effect the
cygwin1 dll can be build with an sjlj gcc and the dll is
significantly smaller.


2002-11-26  Thomas Pfaff  <>

	* New file. Implement new, new[], delete and delete[]
	operators. Implement  __cxa_pure_virtual.
	* (DLL_OFILES): Add cxx.o.
	Remove libstdc++.a from cygwin1.dll link step.

Attachment: cxx.patch
Description: Text document

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