Slashdot Mirror


Winelib Hobbled by Exception-Handling Patent

davidwr writes "UKBuilder.com reports that Borland's structured exception handling (SEH) patent affects Winelib. Winelib allows you to compile Windows-targeted code to run natively on Linux. Because of the patent, gcc does not include support for SEH, which is widely used in the MS-Windows world. There are workarounds, but you won't like them."

40 of 409 comments (clear)

  1. Who Next? by geomon · · Score: 4, Interesting

    I'm sure that Wine was looking for a Microsoft-based patent attack, but this one probably caught many off guard.

    Who else may have submarine patents might affect the development of Wine?

    --
    "Rocky Rococo, at your cervix!"
    1. Re:Who Next? by Curtman · · Score: 4, Interesting

      Makes you wonder if Eben Moglen did anybody a favour in bringing people's attention to Wine's potential patent problems. With patents its best not to even look for them. This just gives Borland ideas I'm sure. They don't have any products to sell these days do they? Why not expand into the litigation market.

      Its great that there are lawyers willing to spend time on OSS projects, but they just dumped a whole pile of hurt on Wine if Borland pursues this.

    2. Re:Who Next? by wallykeyster · · Score: 5, Insightful
      Its great that there are lawyers willing to spend time on OSS projects, but they just dumped a whole pile of hurt on Wine if Borland pursues this.

      How do you figure? TFA simply says that gcc can't implement the features because Borland has a patent. This means that people wanting to use Winelib must remove the SEH portions of their code in order for it to compile. This is a story about a shortcoming of gcc and Winelib because so many Windows C++ developers use SEH instead of sticking to standard C++. I see no threat of lawsuit from Borland or any potential for it.

    3. Re:Who Next? by Red+Alastor · · Score: 4, Insightful

      Borland use winelibs in their Linux Delphi/C++ Builder version called Kylix so they don't have to rewrite all the Windows native code.

      By suing the Wine folks, they'd shoot themselves in the foot.

      --
      Slashdot anagrams to "Sad Sloth"
    4. Re:Who Next? by absinthminded64 · · Score: 3, Insightful

      It seems to me after I RTFA that the wine group actively identified this as being a problem and pursued corrective measures. The article also mentions that PostgreSQL replaced some of their functionality recently to avoid conflicting with an existing IBM patent even though IBM declares that it will not use it's patent war chest against any OSS projects. I think this sends a clear signal that the community is aggressively looking for this type of thing. I've no idea how Borland has been doing financially over the past few years but it definitely seems worthwhile to ensure that smaller companies dont have something like this to use against us. A small company claiming to own rights to significant portions of the linux kernel, or even patents covering something widely used within could really cause a black eye. I also think it's safe to say that SCO has inadvertently shown the other players how voiced, and loyal the OSS crowd is. This is sucky news but it is encouraging to know we're looking for this type of thing. With Microsoft patenting breathing and other bodily functions (Windows seems to be proficient at one or more bodily functions) independent developers have to be very discouraged.

  2. Donation please... by __aaclcg7560 · · Score: 4, Interesting

    This is where Borland needs to step in by giving the patent (or providing a legal exception) to the OSS community.

  3. Borland's still around? by CyberSnyder · · Score: 4, Funny

    Guess I've been doing too much Unix...

  4. Ugly workaround? by evil-osm · · Score: 5, Funny

    There are workarounds, but you won't like them.

    Use Windows? (ducks)

    --


    E.

    Never rub another man's rhubarb - The Joker
    1. Re:Ugly workaround? by Dan512 · · Score: 5, Funny

      While listening to the wineconf presentations I heard one guy talking about a scheme using goto statements.

  5. Is that ironic by MajorDick · · Score: 4, Informative

    Since Borland USED Winelib in Kylix.....

    Amazing how thing like this rear their head AFTER a company that holds the Patent actually used the app in their OWN product, can you say STINGY

  6. Stupid software patents by Cyphertube · · Score: 4, Insightful

    Again, I hate software patents. There's no point.

    Most of what you'd want to protect is covered by copyright. If it can't be covered by copyright, well, then it's something so basic (like "the dog is big") that it's almost impossible to express something without doing it that way.

    Again, this is where the idea of a software patent is stupid. Don't allow people to do things in ways that you really couldn't cover with copyright?

    Ok, now I find myself back to the argument that source code is speech, and hence not patentable.

    --
    Linux - because it doesn't leave that Steve Ballmer aftertaste.
  7. GCC list discussion by Bananenrepublik · · Score: 5, Informative

    Of course this was discussed on the gcc list, the thread starts here.

    Links to an implementation of this can be found in this mail, the legality of this implementation is discussed in the followup.

    The inevitable prior-art discussion begins here.

  8. Or better... by cduffy · · Score: 4, Insightful

    More likely is that Intel would arrange (ie. throw some money, tech, patent licenses, whatever) at Borland in return for such a thing. Borland doesn't have any motivation to make stack-based SEH available to free x86-targeting compilers [the patent's irrelevant on RISC], but Intel arguably does.

  9. no, it's legally interesting by cahiha · · Score: 4, Interesting

    Winelib is covered by the LGPL. If Borland has shipped Winelib in Kylix, they may already have given people a license to use the code. Perhaps they can wiggle out of that, but they can't continue to ship Winelib if they claim a patent on something in it.

    1. Re:no, it's legally interesting by rogueuk · · Score: 4, Insightful

      But I thought the SEH isn't a part of winelib because of this. It's not a question of the code already existing, it hasn't been written yet and can't be written due to this patent.

  10. This is good news for open source. by jimbro2k · · Score: 4, Insightful
    From TFA: ""Having your FOSS project depend on a non-free tool can be a big problem in terms of adoption."

    Even worse, this makes it clear that using patent-encumbered software has a genuinely unpleasant viral effect on all your software.

    The pro-patent folks will eventually realize that the best solution is to avoid ALL patent-encumbered software COMPLETELY -- and look even more skeptically at all proprietary software, too. This will have the opposite effect of what they had intended.

    --
    There is not nearly enough love in the world, but there is far too much trust.
  11. Re:Wait a minute... by Anonymous Coward · · Score: 3, Interesting

    gcc also doesn't support register allocation with interference graphs just because of a patent.

  12. What patent? by Anonymous Coward · · Score: 5, Informative

    This is the patent in question.

    1. Re:What patent? by Anonymous Coward · · Score: 5, Interesting

      Since the patent postdates Windows NT 3.1, and even references the NT SEH implementation, it must be possible to implement NT-compatible SEH without infringing the patent.

    2. Re:What patent? by hmckee · · Score: 3, Informative
      I lifted the following text from http://www.mega-tokyo.com/osfaq2/index.php/Doing%2 0a%20kernel%20in%20C++
      Note that, on x86, VC++ and most other PC compilers use a stack-based unwinding and handling mechanism known as SEH, common to OS/2, Windows and Windows NT and described in detail in a famous MSJ article, http://www.microsoft.com/msj/0197/Exception/Except ion.aspx. GCC and most other UNIX compilers, instead, use the same table-based mechanism that is the rule on RISC architectures on x86 too. Also note that any use of stack-based SEH may or may not be covered by USPTO patent #5,628,016, held by Borland International, Inc. SEH on RISC architectures is table-based, thus unaffected by the patent)
      Further searching for info on table based implementation reveals http://blogs.msdn.com/oldnewthing/archive/2004/01/ 14/58579.aspx that this would break compatibility with Windows. In other words, if you want to use SEH, you're screwed without Borland's help.
  13. Of course by einhverfr · · Score: 4, Interesting

    I am sure that Borland might appreciate the opportunity to strike back at Microsoft in a substantial way.

    --

    LedgerSMB: Open source Accounting/ERP
  14. Ask Nicely by Doc+Ruby · · Score: 4, Insightful

    Next, a wave of Slashdotters will hassle Borland to release the patent, or exempt Wine. The objective is worthy, the self-organized social wave of independent activists is meaningful. But the style will most likely be counterproductive.

    I recently advised a graphic designer/artist friend whose Flash app (advertising a minor celebrity pool player) drew the ire of an OSS "advocate". They demanded that the Flash movie be replaced with something that didn't require any "closed source" software to use it. My friend and I replied politely with their cost:benefit analysis (>95% of desktops can use Flash), the fact that Flash is an open standard (SWF), and the reality of making choices that can't please everyone, so the best alternative is chosen. The "advocate" devolved into namecalling and refusal to accept any of the designer/artist's reasons as valid. Which not only lost that private argument on facts, but alienated any possiblity of the designer/artist exploring OSS possibilities, as long as reliable old Flash still works.

    If you're going to request that Borland release its constraints on Winelib, remember that you catch more flies with sugar than with vinegar. And that invitations to a company to join the OSS "community" makes you an ambassador from your community. Which demands high performance in charm and persuasion, rather than represent the community as a barbarian horde.

    --

    --
    make install -not war

    1. Re:Ask Nicely by RealAlaskan · · Score: 4, Insightful
      First, I agree with your ``ask nicely'' message. As another post pointed out, Intel and especially AMD would benefit by having better free compilers (they are complementary goods to their CPUs), so maybe we should be asking them to buy and contribute this patent. Nicely, of course.

      Second:

      I recently advised a graphic designer/artist friend whose Flash app (advertising a minor celebrity pool player) ...

      Don't ever let him get rid of that Flash. I've found that when I see a webpage that invites me to download Flash, I can just close that tab: there's nothing there for me to see. That's saved me a great deal of time and bandwidth which I might have wasted if those sites had used animated gifs instead.

  15. There's an uber-workaround by Anonymous Coward · · Score: 5, Interesting
    The uber-workaround for software patents is to have the code copyrighted and "owned" in Europe. Europe (as of now) has no software patents. The code can be developed anywhere, but the copyright must be transfered to some European entity and it must be distributed from Europe.

    Remember, patents don't mean you can't code it. You can code it. You can use it for personal non-commercial use. You can distribute the code. But you can't use it commercially, distribute binaries, or sell it.

    So the coders can continue doing their merry work, producing code that would violate patents were it compiled and distributed, and the distributors can continue merrily distributing the code in Europe.

    The only people who are left out of this are Americans who would have to buy licenses from Borland to use the code in the US. That's fine; Americans should either pay according to their laws or change their laws.

    But we shouldn't let American laws affect the rest of the world where they don't apply.

    We need to start doing this for all open source software. There is no way to avoid trampling on patents if you're writing any fairly large or complex piece of software these days, especially any software that involves codecs, pre-existing APIs, and pre-existing file formats. Well, just about any useful piece of large software involves such things. Rather than getting into a hissy-fit on Slashdot every time some patent issue is discovered, open source developers should just plan for the problem and plan to bypass it.

    The patent situation is not like the copyright situation. Copyright laws are roughly similar everywhere in the world and they are enforcable everywhere in the world. There are wide divergences in patent law around the world and most of the world is not burdened by America's folly in this regard. Why should developers bear the burden of one country's legal folly? Answer: developers shouldn't, and should simply pick the right jurisdiction for hosting the project.

    This isn't some radical idea here. MPlayer, for example, could not possibly exist as a US-based project. US coders can and do contribute to it, but it's based in Hungary, where it's safe.

    1. Re:There's an uber-workaround by RealAlaskan · · Score: 4, Insightful
      The uber-workaround for software patents is to have the code copyrighted and "owned" in Europe. Europe (as of now) has no software patents.

      ``As of now.'' Something about your proposal is worrying me, but as of now I can't put my finger on it.

      Yes, it's a good, sensible plan for today, but there's this terrible little flaw which keeps it from being a long term solution.

    2. Re:There's an uber-workaround by perrin · · Score: 4, Informative

      > Europe (as of now) has no software patents.

      Wrong. The European Patent Office (EPO) has issued thousands of software patents. There are just doubts as to their enforcability, and several member countries do not accept them at all. This is what the new EU directive (CIID) is all about.

  16. C++ Standard? by wallykeyster · · Score: 3, Insightful

    Since this is a patented technology used in other compilers, I assume Borland licenses it but it can't be part of the C++ standard. This just seems to me like another great example of problems introduced when programmers rely on things that are not part of the standard. Whether it is Microsoft's custom portions of Java (which meant Java apps suddenly were no longer compatible with Sun's JVM) or vendor extensions to error handling, if you use a tool that does not meet defined standards, then you develop software that is much less useful (it may implement something cool but it has a more limited audience and an almost guaranteed shortened lifespan).

    1. Re:C++ Standard? by Anonymous Coward · · Score: 3, Informative

      The Structured Exception Handling in question is purely for C, and is unrelated to exceptions in C++ or Java or any other language's implementation of them. It's hardly even the only C-based implementation around, so there's no shortage of source-compatible solutions. It is the one Windows uses, however, so binary compatibility would seem to demand it. However, I don't know if SEH even works across a DLL boundary -- usually its usage is even confined to a single compilation unit.

  17. OS/2, Prior Art by NullProg · · Score: 3, Interesting

    From Microsoft,

    In digging through obscure .H and .INC files to piece together what constitutes Win32 SEH, one of the best sources of information turned out to be the IBM OS/2 header files (particularly BSEXCPT.H). This shouldn't be too surprising if you've been in this business for a while. The SEH mechanisms described here were defined back when Microsoft was still working on OS/2. For this reason, you'll find SEH under Win32 and OS/2 to be remarkably similar.

    Article here:
    A Crash Course on the Depths of Win32(TM) Structured Exception Handling;

    Enjoy,

    --
    It's just the normal noises in here.
  18. Huh? by Grendel+Drago · · Score: 4, Funny

    Man, I wish I knew what that meant. It sounds pretty frickin' sweet.

    --grendel drago

    --
    Laws do not persuade just because they threaten. --Seneca
  19. VMS was doing this in the 80's by valderost · · Score: 4, Informative

    Hopefully somebody investigates OpenVMS as potential prior art here. The OpenVMS Condition Handling Facility provides substantially the same exception-handling functionality as SEH and has had much of it since the 80's. http://h71000.www7.hp.com/doc/72final/5841/5841pro _038.html#chf_vaxalpha

  20. Except even MPlayer isn't safe by rklrkl · · Score: 3, Informative
    "US coders can and do contribute to it [MPlayer], but it's based in Hungary, where it's safe."

    Funny, but its current home page doesn't exactly give me warm and fuzzy "safe" feelings. Methinks you chose a bad example there :-)

  21. Isn't that the point? by hanshotfirst · · Score: 4, Interesting
    The point of patents (and copyrights) is to guarantee financial gain for the inventor of a product for a certain period of time before the design or material is released to the public domain.

    Now, discussions whether that should apply to physical inventions only or software is a topic I'm not getting into here.

    I'm not going to touch how long those patents or copyrights should be - that war rages in enough other threads.

    The financial gain for the inventor/creator is part of the motivation for inventing/creating. As much as I dislike MS, they are entitled to the rights afforded by their patents. Like it or not software is patentable around here, so we are stuck with the consequences.

    -2, unpopular concept

    --
    Why, oh why, didn't I take the Blue Pill?
  22. Only for porting windows apps to linux .... by scharkalvin · · Score: 4, Interesting

    Since this problem only affects porting existing windows code to Linux, it could be solved by
    using the MS tools and linking the app with winlib.
    Before you flame this, consider who would be doing this....someone who has a closed source application already working on Windows and wants to sell his application to the Linux market. IIRC, winlib is licensed under the LGPL, so this approach would be legal. (and this is EXACTLY how Coral ported Wordperfect 2000 from windows to Linux).

  23. Re:Solution: by Gogogoch · · Score: 3, Funny

    Hey - why not do this with the MS Windows XP distribution ISO file?

    Lets see. XP is probably about 650Mb, so that's 5.6x10^12 bits. Let's round down for GZIP and call it 10^12 bits.

    So we just need a prime in the order of 2^(10^12). That can't be hard to do, can it? Just because the highest prime so far is in the order of 2^(10^7) just means that those mathematicians have been slacking it a bit! Lazy bums! And no doubt their software is lousy and totally inefficient. I'm sure Slashdotters could fix that.

    But why bother with those pesky prime numbers anyway? Why not just gzip it, stick it on a CD and explain that it does not contain a gzip file of someone else's IP, but is in fact a particularly interesting finite number of about 300 million hexadecimal digits. That it just happens to evaluate, via the mathematical GZIP operator, into another large hexadecimal number resembling someone else's IP is pure coincidence! I'd go for that. Seems reasonable to me.

    But why bother with GZIP? Just copy the original - we know it will fit on a CD - and the argument still holds! Brilliant! Ebay here I come!

    Does anyone have a list of email addresses I could use to see if anyone is interested in buying a very special, large, very large, hexadecimal number with unusually useful evaluation properties? :-)

  24. FUD? by MarkusQ · · Score: 4, Informative

    until 4.0, gcc's backend was entirely and deliberately undocumented
    My first thought was, gee, that's not been my experience--as I recall, although it was complicated, it was rather well documented. So I did a bit of Google and found that other people seemed to agree with me (i.e., they say things like "Furthermore, compared to the other compiler projects, GCC offered the most comprehensive documentation for backend porters." and so forth).

    The only thing I could find that even sort of suport your claim was RMS's thing about not wanting the backend to drift into becoming an LGPL black-box (thus chilling the development of new GPL'd front ends).

    So, do you care to back your claim up?

    --MarkusQ

  25. Re:Wait a minute... by Dan+Berlin · · Score: 3, Informative

    This is completely untrue and misinformed. The original patent on graph coloring has expired (or will expire soon), and IBM granted the right to use it in any GPL'd software anyway. Rice University also granted the use of the patent on Preston Brigg's improvements to GPL'd software. So GCC could, and in fact has, implemented graph coloring register allocation (see the new-regalloc branch), over 2 years ago.

  26. Non sequitur by alexo · · Score: 3, Informative


    > This is a story about a shortcoming of gcc and Winelib because so many
    > Windows C++ developers use SEH instead of sticking to standard C++.


    There are a lot of things that standard C++ does not cover:
    UI, Device I/O, Threading, Synchronization, Async I/O, Interprocess Communications, Virtual Memory management, Registry access, Networking, etc.
    For that, you must use the underlying OS features (either directly or via a library that abstracts it).

    SEH is one such element. It allows you to catch "system" exceptions such as access violations. It is an OS feature that standard C++ does not address.

    Quoting form the MSDN:
    [The] difference is that the structured exception handling model is referred to as "asynchronous" in that exceptions occur secondary to the normal flow of control. The C++ exception handling mechanism is fully "synchronous," which means that exceptions occur only when they are thrown.

    1. Re:Non sequitur by Pseudonym · · Score: 3, Insightful

      Don't knock the idea of registries just because Microsoft can't implement them properly.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  27. Good point, Borland is Wine friendly, so... by Weaselmancer · · Score: 4, Insightful

    ...here's an idea that maybe nobody has tried yet.

    Ask them.

    Rather than do the collective F/OSS thing and lose our minds about a software patent that's in the way...how about asking Borland if we may write something their patent covers?

    Has it at least been tried yet?

    Yes, software patents are evil. And yes, exception handling has tons of prior art. And still yes, this is freaking obvious. But still. It's only a problem if they complain, and they're less likely to do so if we just simply do the good manners thing and ask first.

    --
    Weaselmancer
    rediculous.