mochi
新手上路
新手上路
阅读:1531回复:6

Alpine Linux 3.17.2 编译的程序会闪退

楼主#
更多 发布于:2023-03-26 19:51
iso下载:http://mirrors.aliyun.com/alpine/v3.17/releases/x86_64/alpine-extended-3.17.2-x86_64.iso
编译的下载:https://pan.baidu.com/s/1c0Ys1qjZBDBtsDGoOwPc9g?pwd=eqvt 提取码: eqvt 复制这段内容后打开百度网盘手机App,操作更方便哦
(yong:21231): dbind-WARNING **: 19:44:32.440: Couldn't connect to accessibility bus: Failed to connect to socket /var/run/lightdm/.cache/at-spi/bus_0: Permission denied
切换成拼音就闪退
编译与修改地方
apk add gcc make pkgconfig gtk+3.0-dev musl-dev ibus-dev



//var GTK=target.split('-')[1];
var GTK='gtk3';


// build("gtk4-im",undefined,['l64-gtk4']);
// build("qt5-im",undefined,['l64-qt5','l64-qt6']);


typedef unsigned long u_long;
#include <sys/time.h>
#include <stdbool.h>
# define strndupa(s, n)       \
  (__extension__       \
    ({       \
      const char *__old = (s);       \
      size_t __len = strnlen (__old, (n));       \
      char *__new = (char *) __builtin_alloca (__len + 1);       \
      __new[__len] = '\0';       \
      (char *) memcpy (__new, __old, __len);       \
    }))
不会是strndupa函数问题?还是musl libc的问题
源代码都不怎么改动


mochi
新手上路
新手上路
沙发#
发布于:2023-03-27 01:42
VMware Workstation Pro测试alpineLive.iso
Qemu启动测试器x64 也可以测试 使用浏览器下载yong
yong没有安装
执行tar xvf yong.tar.gz -C /
使用dropbear SSH
账号                密码
root                root
admin        admin
下载地址:www.123pan.com/s/5koZVv-iyGX.html

图片:QQ拼音截图未命名2.png

图片:QQ拼音截图未命名1.png

板凳#
发布于:2023-03-27 11:43
只要发生同一个libmb.so之间的输入法切换,程序就会崩溃。调了一下,从永码切换到内码就不会崩,切换到其他的码表输入法就崩了。


打开libmb.so 调用 关闭 打开libmb.so 调用(这时会崩掉)


原因暂时看不出来。
mochi
新手上路
新手上路
地板#
发布于:2023-03-27 14:26
dgod:只要发生同一个libmb.so之间的输入法切换,程序就会崩溃。调了一下,从永码切换到内码就不会崩,切换到其他的码表输入法就崩了。


打开libmb.so 调用 关闭 打开libmb.so 调用(这时会崩掉)


原因暂时看不出...
回到原帖
mb.c文件l_strndupa函数的补充没问题不
libmb.so就补充一个函数
                if(mb->error)
                {
                        char *temp=l_strndupa(data,dlen);
                        y_mb_error_add(mb,temp);
                }

这个是添加错误日记吧
看样子是libc的问题
4楼#
发布于:2023-03-27 14:36
mochi:mb.c文件l_strndupa函数的补充没问题不
libmb.so就补充一个函数
                if(mb->error)
                {
                        ch...
回到原帖
你用的strndupa没问题。
问题我找到了。我不确定这是musl libc的问题,还是我的问题。我发现,musl在重新加载动态库的时候,全局全量没有重新初始化。
下个版本我会在我这修复这个问题,musl那边的修复我觉得也是必要的,如果要跟glibc保持行为一致的话。
5楼#
发布于:2023-03-27 22:50
代码已上传
mochi
新手上路
新手上路
6楼#
发布于:2023-03-28 19:24
感谢dgod 已经正常使用
输入法已添加
alpineLive.iso测试实体机运行可以用
游客

返回顶部