Librehat's English Blog

Code can be lovely!

Build GCC 5.2 on RHEL 6

To build GCC, we need other three components, GMP, MPC, and MPFR. And I found a lazy way to compile all of them together here. But because GMP, MPC, MPFR are compiled together with GCC, they're certainly not installed before the new GCC is installed. So we can't do make -k check to make a test after the compilation in this way. If you'd like to do a test, please go the traditional way, build and install them one by one seperately.

tar xf gcc-5.2.0.tar.bz2
tar xf gmp-6.0.0a.tar.xz
mv gmp-6.0.0 gcc-5.2.0/gmp
tar xf mpc-1.0.3.tar.gz
mv mpc-1.0.3 gcc-5.2.0/mpc
tar xf mpfr-3.1.3.tar.xz
mv mpfr-3.1.3 gcc-5.2.0/mpfr
mkdir gcc-5.2.0/gcc-build && cd gcc-5.2.0/gcc-build
# I don't have root privilege, so install to a subdir in my home directory
../configure --prefix=$HOME/gcc5 </span>
--disable-multilib </span>
--enable-languages=c,c++ </span>
--enable-libstdcxx-threads </span>
--enable-libstdcxx-time </span>
--enable-shared </span>
--enable-__cxa_atexit </span>
--disable-libunwind-exceptions </span>
--disable-libada </span>
--host x86_64-redhat-linux-gnu </span>
--build x86_64-redhat-linux-gnu </span>
# For clusters, you should request a compute node in slurm to do the compilation. Don't do these in head node
make -j4
make install

With --with-default-libstdcxx-abi=gcc4-compatible, we avoid recompiling all C++ libraries built using older GCC (prior to GCC 5.1). This ensures the default ABI is the old, GCC4-compatble one instead of the newly introduced CXX11 ABI. Check Configure - The GNU C++ Library for details.

Read on →

Use avconv to Convert Video Format

avconv is a utility that belongs to Libav project. Similar to its precedent ffmpeg, it supports lots of mainstream encoders and decoders. Here I just put some simple commands as a personal memo and a brief guide.

Install libav-tools via apt-get on your Debian/Ubuntu machines. Note on my Fedora laptop, there is no libav but only the original ffmpeg packages. The command-line options are fairly similar (sometimes even identical). In that case, you only need to substitute ffmpeg for avconv.

Read on →

Qt 5 Blueprints is Out

I have worked on this book, Qt 5 Blueprints, since last September. It turns out to be one of greatest experience in my life. :) Now, before the end of March, I'm glad to announce the publication of Qt 5 Blueprints!

I'm sure lots of people out there want to learn how to code in Qt/C++ and/or Qt Quick/QML. Now, you can buy this book directly from Packt Pub,, or, to start building truly cross-platform GUI applications. By cross-platform, I mean even mobile operating systems!

This book is for those developers who are familiar with C++ but not Qt. And because Qt is more like a C-style C++ framework, you don't need to be an expert of C++. Only basic C++ knowledge is required. Moreover, this book also covers QML application development! For more details, please refer to the book page on Packt Pub.

At last but never the least, if you find any mistakes in the book, please let me know (by contacting Packt Pub). And I'll do my best to provide following errata.

Force-Enable Hardware Acceleration in Firefox on Linux

Before any steps, let's check if GPU acceleration is already on.

  1. Open about:support in Firefox.
  2. Navigate to Graphics section.
  3. Check the GPU Accelerated Windows field.

If it's 1/1 or 1/2 or 2/2 or whatever, anyway, the first number must be greater than 0, then Firefox is already hardware accelerated. And you don't need to take following procedures to force-enable it. Otherwise, let's do a few modifications to force-enable the GPU acceleration in Firefox!

Read on →

Display Shutdown Dialog When Power Button Gets Clicked on ODROID-U3

In order to make your power button on ODROID-U3 work, you may have to install acpid at first. Otherwise, the power button won't even work.

I use latest Debian Wheezy on this board while MATE as the desktop environment. However, after installed acpid, the system is to shutdown immediately when I press the power button.

Let's see what acpid does when power button clicked, the contents of /etc/acpi/events/powerbtn-acpi-support are:

Read on →

Thank You Gameloft for Saving Me From You

About a week ago, I found my Asphalt8 ID was banned unexpectedly. So I did as the tip on screen says, to contact Gameloft customer care service. Well, the result turned out to be unexpected as well.

I made a screenshot containing the most recent e-mails between Gameloft and me.

Read on →

Two Months in TCD

I've been studying in Trinity College Dublin (TCD) for about two months. The master course is very intensive here, which reminds me of the the third undergraduate year in China.

To be honest, I did't like mathematics at all, especialy those partial equations. What a headache! And how brave I am to study master in the School of Mathematics! Well, that misery was in the past. I mean the math is still difficult for me, it just somehow makes me interested. After all, it doesn't count as a bad thing.

It's true that some assignments are very easy. Meanwhile, there is always at least one problem that consumes a lot of time and efforts to figure it out. And that's good for learning from my point of view. If it's too easy, then it's wasting time. While it's pointless if it's too hard. Thus, so far so good.

However, being a foreigner is not easy for me. House renting, bins collection service, GNIB card, re-entry visa, water charges application, etc. I even assembled my bed frame and the dining table along with four chairs! Those things will never happen if I stay in China. But that definitely enriches my life, in a way. :D Feels more independent now.