[OT] lcc-win32 and GNU

Discussion in 'C Programming' started by jacob navia, Oct 18, 2007.

  1. jacob navia

    jacob navia Guest


    In this forum, there was a thread that mentioned that GNU code is being
    used by lcc-win32.

    This should be a violation of the GNU license. We did not know this,
    and thought that just distributing the code would
    be enough.


    1: gdbm distribution is dropped from the lcc-win32 distribution
    2: The function "edit_distance" is dropped from the library
    3: The linux version of lcc-win32 is discontinued. We are trying to
    evaluate how much effort will be to replace the bfd library
    and use our own object file writing... Until then, no linux
    version will be available.
    4: The parts of lcc-win32 that called the gnu program "indent"
    (that itself is derived from earlier code) have been deleted.
    indent will no longer be distributed.
    jacob navia, Oct 18, 2007
    1. Advertisements

  2. jacob navia said:
    Before the anonytrolls get started, can I just point out that Mr Navia's
    response to discovering that his product violates the GPL licence seems to
    me to be a perfectly reasonable one. Everyone makes mistakes - what counts
    is not that we make them, but how we react when we discover them.

    The world (or at least this bit of it) knows that I am far from being Mr
    Navia's #1 fan, so I hope that his (many!) other critics will think
    carefully about his response, rather than just lay into him blindly, which
    would be a most foolish reaction.

    Richard Heathfield, Oct 18, 2007
    1. Advertisements

  3. Well, what options where available at the time?
    Either change the project, or GPL it, or infringe GPL.

    jacob navia:
    Why not GPL your project? or at least make the source available?
    It would save you from trouble, and it would certainly save heaps
    of your time, that is if other people find it interesting and decide
    to contribute.
    vipvipvipvip.ru, Oct 18, 2007
  4. If Jacob doesn't want to share his source he is entirely within his
    rights to do so. If you want to try and persuade him, please do so in

    Philip Potter, Oct 18, 2007
  5. said:
    If, at the time he made the mistake, he was aware that he was making the
    mistake, presumably he wouldn't have made the mistake. Your followup is
    Richard Heathfield, Oct 18, 2007
  6. jacob navia

    jacob navia Guest

    Well... yes

    I thought that redistributing the source would cover my compliance with
    the GPL. But the GPL people say that if I distribute (with source)
    the GPL code, the lcc-win compiler must be GPLed too.

    I am not a lawyer and prefer to avoid legal battles that I
    can't afford anyway.

    The same for the linux distribution that has costed me a lot
    of work. I thought that just using a GPLed binaries would not
    mean that my code is forced to change its license. Apparently
    that is the case. I have to write now a module to write
    elf format object files. This will be a lot of work.

    I can't put my code under the GPL because I live from my
    work. In a perfect world, I would give my work for free
    and I would go to the supermarket and get food for free,
    my home would have been given to me for free, etc. My kids
    would get everything they need for free, etc.

    This is apparently not the case. My supermarket is not GNU
    and I have to pay for their goods.
    jacob navia, Oct 18, 2007
  7. jacob navia

    Richard Guest

    Theoretically you can still earn money from the GPLd code as people are
    "honour bound" to pay a license to use it if you so state.

    Unfortunately in the real world it doesn't happen that often unless the
    user really needs support.
    Richard, Oct 18, 2007
  8. I, along with a lot of other people, think that Microsoft should GPL
    their code. Then hackers around the world could post line-by-line
    critiques of their code (which surely deserves it far more than any
    newbie posting to CLC) and we'd have real fun.
    Kenny McCormack, Oct 18, 2007
  9. Isn't the usual work-around to this problem to not distribute the stuff
    you can't distribute, but to provide pointers so that the user can d/l
    it themselves? This:
    a) Gets you off the hook - and you can continue to distribute
    your source however you want to.
    and b) Puts whatever legal onus there might be onto the user, who
    presumably will just do whatever he wants anyway.
    Kenny McCormack, Oct 18, 2007
  10. The key distinction here is between the GPL and LGPL code. Linking
    against a library creates a derived work and if the library is GPL,
    the derived work must also comply. The LGLP is specifically designed
    to remove this condition (but there are strong arguments to prefer the

    In the case of libbfd, the mistake is an easy one to make since I
    believe some early versions were indeed LGPL.

    This is in no way intended as a criticism -- I just wanted to clarify
    a frequently misunderstood point.

    [1] http://www.gnu.org/licenses/why-not-lgpl.html
    Ben Bacarisse, Oct 18, 2007
  11. jacob navia

    jacob navia Guest

    In the case of bfd this is not possible since the binary of lcc-win
    will not start without that "bfd" library being present.
    jacob navia, Oct 18, 2007
  12. jacob navia

    Alan Curry Guest

    But compilers don't write object files. They write text files containing
    assembly code. Assemblers and linkers write object files...
    Alan Curry, Oct 18, 2007
    Walter Roberson, Oct 18, 2007
  14. jacob navia

    jacob navia Guest

    Exactly. And it is QUITE an increase of speed; since
    the assembler files tend to be HUGE and provoke
    a lot of I/O to disk. Lcc-win does NOT
    touch the disk from reading the original C source to
    writing the object file.

    No intermediate preprocessed
    file, and no intermediate assembler file. This allows it to
    have a 10-15 fold compilation speed compared to other
    compilers: The problem is now to write the elf writing
    routines, the relocations, and similar things.

    I hope that calling the linker using

    system("gcc output.o") will NOT make my compiler
    break the GPL...
    jacob navia, Oct 18, 2007
  15. So? You just tell them they have to download/install bfd before they
    can run your compiler.
    Kenny McCormack, Oct 18, 2007
  16. jacob navia

    Old Wolf Guest

    Good to see that Linux has DRM too!
    Old Wolf, Oct 18, 2007
  17. Since this thread is already marked "[OT]" ...

    Why do you invoke the linker via gcc? Why not just
    system("ld output.o")
    (which is what gcc is going to do anyway)?

    I'm not sure that the behavior of "gcc output.o" is exactly the same
    as "ld output.o", but it's easy enough to figure out just what gcc is
    going to do and reproduce the logic. It's possible that a Linux
    system might have ld installed, but not gcc. (On Linux, both gcc and
    ld are typically GNU programs, so this has no bearing on your question
    about GPL. I *think* that invoking either gcc or ld is ok, but my
    opinion on this matter is worth no more than what you're paying for
    Keith Thompson, Oct 18, 2007
  18. I applaud your quick and sensible response.
    Keith Thompson, Oct 18, 2007
  19. jacob navia

    rosewater Guest

    Depressing to find you've become such a craven apologist for Navia's

    The situation is this: Navia has invested a bit of time in making a
    Linux version of his notoriously poor compiler. Under the terms of the
    GPL, he has two choices: he can distribute the resulting program under
    the GPL, or send it to /dev/null.

    There is *no way* for Navia to make money now, but he'd rather write
    off the time he spent porting to Linux rather than give people access
    to his compiler with the same spirit of freedom and generosity with
    which he benefited from the GPL'd components he wanted to include in
    it. Taking under the GPL is fine for him - but a different story when
    it's his turn to give.

    Mind you, I don't think many Linux users will be crying /too/ hard if
    they don't get the chance to use Navia's bad compiler for non-standard
    rosewater, Oct 21, 2007
  20. jacob navia

    santosh Guest

    Or use a GPL compliant license.
    The GPL doesn't prohibit selling software covered by it.

    santosh, Oct 21, 2007
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.