{"id":1313,"date":"2008-12-16T10:40:05","date_gmt":"2008-12-16T00:40:05","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=1313"},"modified":"2009-02-21T13:55:59","modified_gmt":"2009-02-21T03:55:59","slug":"fixing-drizzle-on-linux-sparc","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2008\/12\/16\/fixing-drizzle-on-linux-sparc\/","title":{"rendered":"fixing drizzle on linux sparc"},"content":{"rendered":"<p>Since I got <a href=\"http:\/\/www.flamingspork.com\/blog\/2008\/12\/12\/debian-about-1234533-times-easier-to-install-than-solaris\/\">fed up with Solaris<\/a> the other day, the <a href=\"http:\/\/www.flamingspork.com\/blog\/2008\/12\/02\/is-your-garage-internet-enabled\/\">T1000<\/a> is running Debian. This means that &#8220;I&#8217;ll care about Drizzle on Linux Sparc&#8221;.<\/p>\n<p>OMG were things broken in the most &#8220;trivial&#8221; ways.<\/p>\n<p>A good quick intro to the issues is <a href=\"http:\/\/cmynhier.blogspot.com\/2008\/10\/memory-alignment-on-sparc-or-300x.html\">Memory alignment on SPARC, or a 300x speedup!<\/a><\/p>\n<p>It all comes down to memory alignment.<\/p>\n<p>So I pulled the MySQL 6.0 bzr tree onto the box to try it too&#8230; I haven&#8217;t seen so many compiler warnings in ages (okay&#8230; since I last built MySQL.. drizzle is warning-clean and it makes it hard to remember a time before that). I think it works purely by accident.<\/p>\n<p>So I&#8217;m gradually getting all of Drizzle working on Linux Sparc (a few things fixed already).<\/p>\n<p>It&#8217;d be great if the T1k had faster disk though (make -j30 is fun&#8230; but IO isn&#8217;t on a single 160GB 7200rpm disk)&#8230; anybody wanting to donate an SSD?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since I got fed up with Solaris the other day, the T1000 is running Debian. This means that &#8220;I&#8217;ll care about Drizzle on Linux Sparc&#8221;. OMG were things broken in the most &#8220;trivial&#8221; ways. A good quick intro to the &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2008\/12\/16\/fixing-drizzle-on-linux-sparc\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[75,14],"tags":[70,141,97],"class_list":["post-1313","post","type-post","status-publish","format-standard","hentry","category-drizzle-work-et-al","category-mysql","tag-drizzle","tag-linux","tag-sparc"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-lb","jetpack-related-posts":[{"id":1598,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/03\/26\/drizzle-tests-all-pass-on-solarissparc\/","url_meta":{"origin":1313,"position":0},"title":"Drizzle tests all pass on Solaris\/Sparc","author":"Stewart Smith","date":"2009-03-26","format":false,"excerpt":"Stopping All Servers All 221 tests were successful. The servers were restarted 14 times Spent 1424.921 of 1521 seconds executing testcases (All tests have passed on OpenSolaris on x86 for a while now).","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1309,"url":"https:\/\/www.flamingspork.com\/blog\/2008\/12\/12\/debian-about-1234533-times-easier-to-install-than-solaris\/","url_meta":{"origin":1313,"position":1},"title":"Debian about 1234533 times easier to install than Solaris","author":"Stewart Smith","date":"2008-12-12","format":false,"excerpt":"After what many hours trying to netboot the T1000 to install Solaris Express, I wondered \"how hard is it for debian?\". Easy. get the sparc64 boot.img, put it on TFTP server, add \"filename \"boot.img\";\" or similar to dhcp, boot the T1000 from the service console something like this \"bootmode bootscript=\"boot\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1670,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/07\/09\/debian-unstable-on-a-sun-fire-t1000\/","url_meta":{"origin":1313,"position":2},"title":"Debian unstable on a Sun Fire T1000","author":"Stewart Smith","date":"2009-07-09","format":false,"excerpt":"So i got the T1000 working again (finally, after much screwing about trying to get the part). I then hit the ever annoying \"no console\" problem, where the console didn't work - kind of problematic. After a firmware upgrade, and passing \"console=\/dev\/ttyS0\" to the kernel, things work. So the T1000\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2323,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/17\/things-ive-done-in-drizzle\/","url_meta":{"origin":1313,"position":3},"title":"Things I&#8217;ve done in Drizzle","author":"Stewart Smith","date":"2011-03-17","format":false,"excerpt":"When writing my Dropping ACID: Eating Data in a Web 2.0 Cloud World talk for LCA2011 I came to the realisation that I had forgotten a lot of the things I had worked on in MySQL and MySQL Cluster. So, as a bit of a retrospective as part of the\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1403,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/02\/18\/floating-point-is-not-fun\/","url_meta":{"origin":1313,"position":4},"title":"floating point is not fun","author":"Stewart Smith","date":"2009-02-18","format":false,"excerpt":"#include <stdio.h> #include <math.h> int main() { double a= 10.0; double b= 1e+308; printf(\"%dn\",isinf(a * b)); return 0; } Prints 1 on: 64bit intel, 32bit PowerPC, 32bit SPARC, 64bit Sparc. But prints zero on 32bit intel. Oh, but if you build that with g++ instead of gcc on 32bit Intel,\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1405,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/02\/18\/fun-with-387\/","url_meta":{"origin":1313,"position":5},"title":"Fun with the 387","author":"Stewart Smith","date":"2009-02-18","format":false,"excerpt":"Filed\u00c2\u00a0 GCC bug 39228: #include <stdio.h> #include <math.h> int main() { \u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 double a= 10.0; \u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 double b= 1e+308; \u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 printf(\"%d %d %dn\", isinf(a*b), __builtin_isinf(a*b), __isinf(a*b)); \u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 return 0; } mtaylor@drizzle-dev:~$ gcc -o test test.c mtaylor@drizzle-dev:~$ .\/test 0 0 1 mtaylor@drizzle-dev:~$ gcc -o test test.c -std=c99 mtaylor@drizzle-dev:~$ .\/test 1 0\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=1313"}],"version-history":[{"count":3,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1313\/revisions"}],"predecessor-version":[{"id":1315,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1313\/revisions\/1315"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=1313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=1313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=1313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}