Ulrich Wilkens <m...@uwilkens.de> writes:

> On 06/19/18 22:56, Matthew R. Trower wrote:
>> DtMail attempts to detect whether the non-standard strcasestr() is
>> available, and defines it if it is not.  Unfortunately, the detection
>> code is imperfect.  Fortunately, we can make it a class method to avoid
>> collision even if it does exist.
>>
>
> I've found that this patch has broken gcc support on all suns.
What?  I'm so sorry; I must have only tested this with SunPRO.  I'll try
to make sure I'm running patches through both compilers first.


> After some research I found an explanation:
> https://stackoverflow.com/questions/31305717/member-function-with-static-linkage
>
> And indeed: If I remove the static from FindDialog.C it builds and runs
> again also with gcc.
> But I never had problems with this part and don't understand the reason
> for the patch. So the question to Matthew is: Is your original problem
> still solved if you remove the static from the definition?

Yes; the problem is that OpenSolaris (b134, the last snapshot) does not
provide this non-standard extension.  Later releases (including illumos,
Solaris 11+, etc) do provide it.  So if you don't define it on Sun,
OpenSolaris (and older, though we don't care) is broken.  If you do
define it on Sun, everything newer is broken.

My patch makes it so that defining it will never break a system that has
it.

After reading your StackOverflow link, I agree the correct solution is
to remove the static keyword.

-mrt

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to