kubo39's blog

ただの雑記です。

一般人未満の存在ってこと…?

相変わらずAWS LambdaとCloudWatchLogsで消耗していた。AWSのドキュメントはほんとうにだめ。

同期に setenforce 0 を伝授した。

D言語

GCC hardennd対応は dmd.confに -g -fPIC -defaultlib=libphobos2.so を足せばよかった。

perlD言語

Perlは拡張をCPPの独自拡張?であるXSで書くのでC言語以外で拡張モジュールを書くのがむずかしい。

それでも他言語でやれないことはなくて、共有リンクライブラリを FFI::Raw のように実行時にdlopen(3)する形でやればよい。

先に環境

( ՞ਊ ՞) :~ $ perl -V:version
version='5.14.4';
( ՞ਊ ՞) :~ $ ldc2 -version | head -1
LDC - the LLVM D compiler (1.0.0):
( ՞ਊ ՞) :~ $ lsb_release -c
Codename:       yakkety
( ՞ਊ ՞) :~ $ cat /proc/version
Linux version 4.8.0-26-generic (buildd@lgw01-58) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #28-Ubuntu SMP Tue Oct 18 14:39:52 UTC 2016
use strict;
use warnings;

use FFI::Raw;

my $adder = FFI::Raw->new(
  'libadder.so', 'adder',
  FFI::Raw::int, # 戻り値
  FFI::Raw::int,  # 引数1
  FFI::Raw::int  # 引数2
);

print $adder->call(1, 1) . "\n";  #=> 2
extern(C) int adder(int a, int b)
{
    return a + b;
}

しかしひとつ問題があって、 -sharedつきでビルドをするとD言語自体のライブラリとのリンクを共有リンクライブラリと行ってしまう。

$ ldd libadder.so  # LDCを使っているのはDMDはGCC hardened対応のため-defaultlib=libphobos2.soを与えているから
        linux-vdso.so.1 =>  (0x00007ffd78f6e000)
        libdruntime-ldc.so.71 => /usr/lib/x86_64-linux-gnu/libdruntime-ldc.so.71 (0x00007ff37aed5000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff37ab0e000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff37a805000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff37a5e7000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff37a3df000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff37a1d9000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff379fc2000)
        /lib64/ld-linux-x86-64.so.2 (0x000056322ba25000)

静的リンクライブラリは-fPIC前提でないためなのかわからないが、とにかくデフォルトの挙動はこうなってしまう。

アニメ

アイカツスターズ!をみました。まひるちゃん回、かな?よさです。

フリップフラッパーズをみました。演出がこわかったですがハッピーに終わるかんじでよかった。

レガリアをみました。ハッピーエンドになってくれたのむ〜〜〜

競女をみました。極めて頭のおかしいアニメだ(褒めてる)

ガーリッシュナンバーをみました。水着回でした、勝ったなガハハw・・・

バカテレビ

バカテレビなのでリモコンが効かず主電源を落としに行かなければならない。また東芝製か、っていう。東芝不買運動をするぞ。