<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2017-04-20:3147171</id>
  <title>lmemsm</title>
  <subtitle>lmemsm</subtitle>
  <author>
    <name>lmemsm</name>
  </author>
  <link rel="alternate" type="text/html" href="https://lmemsm.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://lmemsm.dreamwidth.org/data/atom"/>
  <updated>2021-07-13T18:32:46Z</updated>
  <dw:journal username="lmemsm" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2017-04-20:3147171:12132</id>
    <link rel="alternate" type="text/html" href="https://lmemsm.dreamwidth.org/12132.html"/>
    <link rel="self" type="text/xml" href="https://lmemsm.dreamwidth.org/data/atom/?itemid=12132"/>
    <title>Preprocessor and Makefile Tips and Tricks</title>
    <published>2020-02-06T17:09:01Z</published>
    <updated>2021-07-13T18:32:46Z</updated>
    <category term="gcc"/>
    <category term="tips"/>
    <category term="gnu"/>
    <category term="c"/>
    <category term="tricks"/>
    <category term="makefile"/>
    <category term="sed"/>
    <category term="make"/>
    <category term="preprocessor"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <summary type="html">Here are some interesting articles and tips related to the C preprocessor and to creating makefiles.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href="https://lmemsm.dreamwidth.org/12132.html"&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=12132" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</summary>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-04-20:3147171:6217</id>
    <link rel="alternate" type="text/html" href="https://lmemsm.dreamwidth.org/6217.html"/>
    <link rel="self" type="text/xml" href="https://lmemsm.dreamwidth.org/data/atom/?itemid=6217"/>
    <title>MinGW</title>
    <published>2017-04-20T19:43:20Z</published>
    <updated>2017-04-20T19:43:20Z</updated>
    <category term="c/c++"/>
    <category term="win32 api"/>
    <category term="gcc"/>
    <category term="mingw"/>
    <category term="c"/>
    <category term="win32"/>
    <category term="gnu"/>
    <category term="c11 threads"/>
    <category term="c++"/>
    <category term="posix threads"/>
    <category term="pthreads"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <summary type="html">There are now several forks of MinGW and each has its pros and cons.  However, there are now enough negatives to using them, that I've found it necessary to build MinGW from scratch myself.  The MinGW64 project uses a later version of gcc, has better compatibility for building Open Source projects and has its own thread library instead of using Red Hat's pthreads-w32.  Some custom builds of MinGW64 even have POSIX threading set as the default instead of Win32 threading.  That means better compatibility for C++ thread related code (since the GNU C++ library relies on POSIX threading for parts of its implementation).  The MinGW project has always been more careful about licensing and making sure that the code it was using was properly licensed and legal for usage.  The MinGW project did follow the example of the MinGW64 project in one key area.  They switched from public domain to a MIT license for their runtime library and Win32 API.  When they did so without clearly indicating that an exception could be made similar to the GNU gcc runtime license exception, I felt it was time to stop using that version of the MinGW compiler.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href="https://lmemsm.dreamwidth.org/6217.html"&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=6217" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</summary>
  </entry>
</feed>
