{"id":294,"date":"2010-01-08T21:35:29","date_gmt":"2010-01-09T05:35:29","guid":{"rendered":"http:\/\/www.airs.com\/blog\/?p=294"},"modified":"2010-01-08T21:35:29","modified_gmt":"2010-01-09T05:35:29","slug":"cargo-cult-programming","status":"publish","type":"post","link":"https:\/\/www.airs.com\/blog\/archives\/294","title":{"rendered":"Cargo Cult Programming"},"content":{"rendered":"<p>I recently encountered a nice example of cargo cult programming.  In <a href=\"http:\/\/sourceware.org\/bugzilla\/show_bug.cgi?id=10980\">bug 10980<\/a> Robert Wohlrab helpfully built  a large number of Debian packages with the gold linker and reported errors about unknown options.  These were options supported by the GNU linker but not by gold.  (I&#8217;ve now added all the options to gold).<\/p>\n<p>Among the options that packages used were <code>-g<\/code> and <code>-assert<\/code>.  The GNU linker accepts and ignores these options.  It has never done anything with them.  Why do people pass them to the linker?  I can only assume that they were copied from some other linker invocation.<\/p>\n<p>In today&#8217;s increasingly complex world of programming, when so much code involves integrating libraries in various ways, I expect that cargo cult programming is on the rise.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently encountered a nice example of cargo cult programming. In bug 10980 Robert Wohlrab helpfully built a large number of Debian packages with the gold linker and reported errors about unknown options. These were options supported by the GNU linker but not by gold. (I&#8217;ve now added all the options to gold). Among the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-294","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/posts\/294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/comments?post=294"}],"version-history":[{"count":1,"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/posts\/294\/revisions"}],"predecessor-version":[{"id":295,"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/posts\/294\/revisions\/295"}],"wp:attachment":[{"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/media?parent=294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/categories?post=294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.airs.com\/blog\/wp-json\/wp\/v2\/tags?post=294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}