<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>crypto currency mania &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/crypto-currency-mania/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Thu, 13 May 2021 07:04:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>
	<item>
		<title>GCC 2.5.8 failure on 32bit ARM</title>
		<link>https://virtuallyfun.com/2021/05/12/gcc-2-5-8-failure-on-32bit-arm/</link>
					<comments>https://virtuallyfun.com/2021/05/12/gcc-2-5-8-failure-on-32bit-arm/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 12 May 2021 00:51:29 +0000</pubDate>
				<category><![CDATA[arm]]></category>
		<category><![CDATA[cross compiler]]></category>
		<category><![CDATA[crypto currency mania]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11002</guid>

					<description><![CDATA[This is really nothing more than a placeholder for me&#8230; Unless someone else knows the answer, then it&#8217;s really &#8216;how not to cross compile GCC&#8217;. First I&#8217;m using the EMX&#8217;ified version of GCC from my MinGW to EMX cross. It &#8230; <a href="https://virtuallyfun.com/2021/05/12/gcc-2-5-8-failure-on-32bit-arm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This is really nothing more than a placeholder for me&#8230; Unless someone else knows the answer, then it&#8217;s really &#8216;how not to cross compile GCC&#8217;.</p>



<p class="wp-block-paragraph">First I&#8217;m using the EMX&#8217;ified version of GCC from my MinGW to EMX cross.  It didn&#8217;t require that much massaging to get it to build, the usual unzip as ascii to convert text, and in no time I can build cc1.</p>



<pre class="wp-block-code"><code>
root@pinepro:/src/emx/src/gcc-2.5.8# file cc1
cc1: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID&#91;sha1]=42c0c8de7175edade7614dc92d5d13e4421e0e6f, with debug_info, not stripped
</code></pre>



<p class="wp-block-paragraph">and it crashes in what has to be a 2020 most unfortunte name</p>



<pre class="wp-block-code"><code>Reading symbols from cc1...done.
(gdb) r
Starting program: /src/emx/src/gcc-2.5.8/cc1 

Program received signal SIGSEGV, Segmentation fault.
0x004f6b84 in rtx_cost (x=&lt;error reading variable: Cannot access memory at address 0xff7efff0&gt;, 
    outer_code=&lt;error reading variable: Cannot access memory at address 0xff7effec&gt;) at cse.c:667
667     {
(gdb) 
</code></pre>



<p class="wp-block-paragraph">Yes, it really crashes in rtx_cost.  Good thing there isn&#8217;t a super popular card from Nvidia that is currently being short squeezed by crypto miners right now called the RTX where everyone is looking for a good price. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f610.png" alt="😐" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">I had then been thinking perhaps it&#8217;s because I&#8217;m using GCC 8.3.0, maybe it&#8217;s introducing some new and exciting bug?  So I cross compiled GCC 4.1.2 as follows:</p>



<pre class="wp-block-code"><code>./configure --target=armeb-linux --host=armeb-linux --build=armeb-linux
</code></pre>



<p class="wp-block-paragraph">Keeping in mind that my knowledge of ARM is pretty much nill, especially on Linux.  The compile went mostly okay, just have to remember the gnu inline macro&#8217;s as needed from back in the day (<a href="https://virtuallyfun.com/wordpress/2020/08/17/patching-gcc-4-1-2-to-build-under-gcc-8/">-fgnu89-inline</a>) and while it builds, it is insisting on using collect2 which of course is screwing things up.  And of course I don&#8217;t want it as my system compiler.  As a hack I found system gcc 8 can link things fine as I didn&#8217;t want to spend all day messing with GCC/collect2</p>



<p class="wp-block-paragraph">I copied xgcc, cc1 and cpp from 4.1.2 into a /412 directory, and rebuilt 2.5.8 with the following shell:</p>



<pre class="wp-block-code"><code>make CC="/412/xgcc -B/412 -g -O0  -I. \
-I./config \
-I/usr/lib/gcc/arm-linux-gnueabihf/8/include \
-I/usr/local/include \
-I/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed \
-I/usr/include/arm-linux-gnueabihf \
-I/usr/include" cc1
</code></pre>



<p class="wp-block-paragraph">As you can see the cross wasn&#8217;t picking up the right include paths, so I just cheated, and dumped them from 8, and just copied them into this script.  I re-ran the build and had 2 issues, </p>



<pre class="wp-block-code"><code>/412/xgcc -B/412 -g -O0  -I. -I./config -I/usr/lib/gcc/arm-linux-gnueabihf/8/include -I/usr/local/include -I/usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed -I/usr/include/arm-linux-gnueabihf -I/usr/include -c  -DIN_GCC   -g -std=gnu89     -I. -I. -I./config local-al.c

....

/tmp/ccMguyhs.s: Assembler messages:
/tmp/ccMguyhs.s:5001: Error: selected processor does not support `fltd f1,r3' in ARM mode
/tmp/ccMguyhs.s:5025: Error: selected processor does not support `fltd f0,r3' in ARM mode
/tmp/ccMguyhs.s:5026: Error: selected processor does not support `dvfd f1,f1,f0' in ARM mode
/tmp/ccMguyhs.s:5027: Error: selected processor does not support `ldfd f0,.L489' in ARM mode
/tmp/ccMguyhs.s:5028: Error: selected processor does not support `mufd f0,f1,f0' in ARM mode
</code></pre>



<p class="wp-block-paragraph">and so on.  Also failing was global.c  Again the same weird instruction/asm mix being triggered.  Other than those two, cc1 will build, but unsurprisingly:</p>



<pre class="wp-block-code"><code>Reading symbols from cc1...done.
(gdb) r
Starting program: /src/emx/src/gcc-2.5.8/cc1 

Program received signal SIGSEGV, Segmentation fault.
0x004f6b84 in rtx_cost (x=&lt;error reading variable: Cannot access memory at address 0xff7efff0&gt;, 
    outer_code=&lt;error reading variable: Cannot access memory at address 0xff7effec&gt;) at cse.c:667
667     {
(gdb) 
</code></pre>



<p class="wp-block-paragraph">Well, at least it&#8217;s consistent?</p>



<p class="wp-block-paragraph">Or a fun way to kill a couple hours.</p>



<p class="wp-block-paragraph"><strong>**EDIT</strong> I went ahead and looked in the 4.1 source for ARM stuff..</p>



<pre class="wp-block-code"><code>root@pinepro:/src/gcc-4.1.2# grep arm config*|grep linux
grep: config: Is a directory
configure:  arm*-*-linux-gnueabi)
configure.in:  arm*-*-linux-gnueabi)</code></pre>



<p class="wp-block-paragraph">it didn&#8217;t like the gnueabihf stuff one bit.</p>



<p class="wp-block-paragraph">I tried to rebuild as linux-gnueabi</p>



<pre class="wp-block-code"><code>./configure --target=arm-linux-gnueabi --host=arm-linux-gnueabi --build=arm-linux-gnueabi

make LANGUAGES=c HOST_CFLAGS='-fgnu89-inline' CFLAGS='-fgnu89-inline'</code></pre>



<p class="wp-block-paragraph">And then re-built GCC 2.5.8 with the same error, but slightly further into the program:</p>



<pre class="wp-block-code"><code>Starting program: /src/emx/src/gcc-2.5.8/cc1

Program received signal SIGSEGV, Segmentation fault.
0x004f2a20 in rtx_cost (x=0x41, outer_code=PLUS) at cse.c:679
679       code = GET_CODE (x);
(gdb) bt
#0  0x004f2a20 in rtx_cost (x=0x41, outer_code=PLUS) at cse.c:679
#1  0x004f2e20 in rtx_cost (x=0x60c3f8, outer_code=SET) at cse.c:736
#2  0x004ac2dc in init_expmed () at expmed.c:87
#3  0x0045ae28 in compile_file (name=0x5c96ec "stdin") at toplev.c:1648
#4  0x0045f6fc in main (argc=1, argv=0xfffefd04, envp=0xfffefd0c) at toplev.c:3569
(gdb)</code></pre>



<p class="wp-block-paragraph">The positive thing is that there was no weird register errors while compiling, and it built 100% normally&#8230;?  &#8220;arm-linux-gnueabihf&#8221; almost seems right, specs needs fixing to point to &#8220;/lib/ld-linux-armhf.so.3&#8221; instead of &#8220;/lib/ld-linux.so.3&#8221; along with the linker target.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/05/12/gcc-2-5-8-failure-on-32bit-arm/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Thinking about doing something different about monitization</title>
		<link>https://virtuallyfun.com/2017/12/15/thinking-about-doing-something-different-about-monitization/</link>
					<comments>https://virtuallyfun.com/2017/12/15/thinking-about-doing-something-different-about-monitization/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 15 Dec 2017 09:59:44 +0000</pubDate>
				<category><![CDATA[crypto currency mania]]></category>
		<category><![CDATA[random updates]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7926</guid>

					<description><![CDATA[I hate ads, and didn&#8217;t want to go down that road, but I was thinking of something different.Â  I keep reading in the news about these &#8216;javascript bitcoin miners&#8217;.Â  Many of them apparently are stealthy, but how about one that &#8230; <a href="https://virtuallyfun.com/2017/12/15/thinking-about-doing-something-different-about-monitization/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I hate ads, and didn&#8217;t want to go down that road, but I was thinking of something different.Â  I keep reading in the news about these &#8216;javascript bitcoin miners&#8217;.Â  Many of them apparently are stealthy, but how about one that is overt?Â  I saw over atÂ <a href="https://authedmine.com/">coinhive.com</a> that they do have &#8216;opt in&#8217; versions of their scripts as opposed to doing it silently.Â  So I thought this would be something interesting to ask for:<br />
<script src="https://authedmine.com/lib/captcha.min.js" async></script></p>
<div class="coinhive-captcha" data-hashes="1024" data-key="Oqqi1gSMiCzaMWlVFVvpiRB332LVrAk6">
		<em>Loading Authed Mine&#8230;<br />
		100% volentary!</em>
	</div>
<p>So, buddy, spare some CPU cycles?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/12/15/thinking-about-doing-something-different-about-monitization/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
	</channel>
</rss>
