Page 1 of 1
Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-17 3:04
by xiajinlin
Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-17 3:12
by Crocodile
您好,请问您指的是编译软件还是编译系统,如果是软件的话arm-linux-gnueabihf编译的软件只适用于glibc根文件系统(比如ubuntu),buildroot系统是基于uclibc构建的,如果软件依赖的库是glibc和uclibc共有的有概率可以运行,但大多数应用场景都不推荐这么使用。
在buildroot系统下使用arm-rockchip830-linux-uclibcgnueabihf- 在glibc系统下使用arm-linux-gnueabihf-
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-17 3:21
by xiajinlin
Crocodile wrote: ↑2024-06-17 3:12
您好,请问您指的是编译软件还是编译系统,如果是软件的话arm-linux-gnueabihf编译的软件只适用于glibc根文件系统(比如ubuntu),buildroot系统是基于uclibc构建的,如果软件依赖的库是glibc和uclibc共有的有概率可以运行,但大多数应用场景都不推荐这么使用。
在buildroot系统下使用arm-rockchip830-linux-uclibcgnueabihf- 在glibc系统下使用arm-linux-gnueabihf-
我指的是编译整个buildroot系统,目前下载的源码里是用的这个工具链tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf,我想换成arm-linux-gnueabihf-工具链是否可以?
我们之前用的RV1126也是buildroot系统,用的是arm-linux-gnueabihf-工具链。
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-17 3:48
by Crocodile
xiajinlin wrote: ↑2024-06-17 3:21
Crocodile wrote: ↑2024-06-17 3:12
您好,请问您指的是编译软件还是编译系统,如果是软件的话arm-linux-gnueabihf编译的软件只适用于glibc根文件系统(比如ubuntu),buildroot系统是基于uclibc构建的,如果软件依赖的库是glibc和uclibc共有的有概率可以运行,但大多数应用场景都不推荐这么使用。
在buildroot系统下使用arm-rockchip830-linux-uclibcgnueabihf- 在glibc系统下使用arm-linux-gnueabihf-
我指的是编译整个buildroot系统,目前下载的源码里是用的这个工具链tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf,我想换成arm-linux-gnueabihf-工具链是否可以?
我们之前用的RV1126也是buildroot系统,用的是arm-linux-gnueabihf-工具链。
这个我们没有测试过,理论上支持但是很多uclibc的库将无法链接,RV1106 和 RV1126 的差异不止在编译工具上的差别,很多IP核RV1106都做了升级,用arm-linux-gnueabihf-可能会在构建根文件系统时出现很多链接错误,即使链接成功也可能只是链接到了RV1126的库(SDK中32位的库提供了rv1106的版本和rv1126的版本),在编译好的根文件系统中也无法使用完整的功能。
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-17 10:02
by xiajinlin
Crocodile wrote: ↑2024-06-17 3:48
xiajinlin wrote: ↑2024-06-17 3:21
Crocodile wrote: ↑2024-06-17 3:12
您好,请问您指的是编译软件还是编译系统,如果是软件的话arm-linux-gnueabihf编译的软件只适用于glibc根文件系统(比如ubuntu),buildroot系统是基于uclibc构建的,如果软件依赖的库是glibc和uclibc共有的有概率可以运行,但大多数应用场景都不推荐这么使用。
在buildroot系统下使用arm-rockchip830-linux-uclibcgnueabihf- 在glibc系统下使用arm-linux-gnueabihf-
我指的是编译整个buildroot系统,目前下载的源码里是用的这个工具链tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf,我想换成arm-linux-gnueabihf-工具链是否可以?
我们之前用的RV1126也是buildroot系统,用的是arm-linux-gnueabihf-工具链。
这个我们没有测试过,理论上支持但是很多uclibc的库将无法链接,RV1106 和 RV1126 的差异不止在编译工具上的差别,很多IP核RV1106都做了升级,用arm-linux-gnueabihf-可能会在构建根文件系统时出现很多链接错误,即使链接成功也可能只是链接到了RV1126的库(SDK中32位的库提供了rv1106的版本和rv1126的版本),在编译好的根文件系统中也无法使用完整的功能。
我之所以想用arm-linux-gnueabihf-工具链,是因为之前我用arm-linux-gnueabihf-编译的代码是能正常编译通过的,但是现在用arm-rockchip830-linux-uclibcgnueabihf会编译失败,例如我用到了libdl.so这个库,之前arm-linux-gnueabihf的sysroot是有的,现在arm-rockchip830-linux-uclibcgnueabihf没有这个文件了,只有个libdl.a,请问这种问题要怎么解决
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-17 10:34
by Crocodile
xiajinlin wrote: ↑2024-06-17 10:02
Crocodile wrote: ↑2024-06-17 3:48
xiajinlin wrote: ↑2024-06-17 3:21
我指的是编译整个buildroot系统,目前下载的源码里是用的这个工具链tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf,我想换成arm-linux-gnueabihf-工具链是否可以?
我们之前用的RV1126也是buildroot系统,用的是arm-linux-gnueabihf-工具链。
这个我们没有测试过,理论上支持但是很多uclibc的库将无法链接,RV1106 和 RV1126 的差异不止在编译工具上的差别,很多IP核RV1106都做了升级,用arm-linux-gnueabihf-可能会在构建根文件系统时出现很多链接错误,即使链接成功也可能只是链接到了RV1126的库(SDK中32位的库提供了rv1106的版本和rv1126的版本),在编译好的根文件系统中也无法使用完整的功能。
我之所以想用arm-linux-gnueabihf-工具链,是因为之前我用arm-linux-gnueabihf-编译的代码是能正常编译通过的,但是现在用arm-rockchip830-linux-uclibcgnueabihf会编译失败,例如我用到了libdl.so这个库,之前arm-linux-gnueabihf的sysroot是有的,现在arm-rockchip830-linux-uclibcgnueabihf没有这个文件了,只有个libdl.a,请问这种问题要怎么解决
这种情况是uclibc和glibc不兼容导致的,有一部分库只有glibc的编译工具才有,目前比较常见的解决方式就是使用uclibc重新实现对应的库的函数(在函数缺少较少的情况下使用)或者获取glibc对应库的源码(比如libdl.a的源码),重新交叉编译后用arm-rockchip830-linux-uclibcgnueabihf进行链接。
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-18 7:01
by xiajinlin
Crocodile wrote: ↑2024-06-17 10:34
xiajinlin wrote: ↑2024-06-17 10:02
Crocodile wrote: ↑2024-06-17 3:48
这个我们没有测试过,理论上支持但是很多uclibc的库将无法链接,RV1106 和 RV1126 的差异不止在编译工具上的差别,很多IP核RV1106都做了升级,用arm-linux-gnueabihf-可能会在构建根文件系统时出现很多链接错误,即使链接成功也可能只是链接到了RV1126的库(SDK中32位的库提供了rv1106的版本和rv1126的版本),在编译好的根文件系统中也无法使用完整的功能。
我之所以想用arm-linux-gnueabihf-工具链,是因为之前我用arm-linux-gnueabihf-编译的代码是能正常编译通过的,但是现在用arm-rockchip830-linux-uclibcgnueabihf会编译失败,例如我用到了libdl.so这个库,之前arm-linux-gnueabihf的sysroot是有的,现在arm-rockchip830-linux-uclibcgnueabihf没有这个文件了,只有个libdl.a,请问这种问题要怎么解决
这种情况是uclibc和glibc不兼容导致的,有一部分库只有glibc的编译工具才有,目前比较常见的解决方式就是使用uclibc重新实现对应的库的函数(在函数缺少较少的情况下使用)或者获取glibc对应库的源码(比如libdl.a的源码),重新交叉编译后用arm-rockchip830-linux-uclibcgnueabihf进行链接。
ifeq ($(SYSDRV_CROSS),arm-rockchip830-linux-uclibcgnueabihf)
SYSDRV_LIB_TYPE := uclibc
ARCH := arm
SYSDRV_CROSS_CFLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=hard
endif
ifeq ($(SYSDRV_CROSS),arm-rockchip830-linux-gnueabihf)
SYSDRV_LIB_TYPE := glibc
ARCH := arm
SYSDRV_CROSS_CFLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=hard
endif
我看源码里的makefile可以配置用glibc的工具链来编译,请问arm-rockchip830-linux-gnueabihf这个工具链我从哪里能拿到
Re: Luckfox Pico Ultra W的开发板能用arm-linux-gnueabihf的工具链编译跑起来吗
Posted: 2024-06-18 7:28
by Crocodile
xiajinlin wrote: ↑2024-06-18 7:01
Crocodile wrote: ↑2024-06-17 10:34
xiajinlin wrote: ↑2024-06-17 10:02
我之所以想用arm-linux-gnueabihf-工具链,是因为之前我用arm-linux-gnueabihf-编译的代码是能正常编译通过的,但是现在用arm-rockchip830-linux-uclibcgnueabihf会编译失败,例如我用到了libdl.so这个库,之前arm-linux-gnueabihf的sysroot是有的,现在arm-rockchip830-linux-uclibcgnueabihf没有这个文件了,只有个libdl.a,请问这种问题要怎么解决
这种情况是uclibc和glibc不兼容导致的,有一部分库只有glibc的编译工具才有,目前比较常见的解决方式就是使用uclibc重新实现对应的库的函数(在函数缺少较少的情况下使用)或者获取glibc对应库的源码(比如libdl.a的源码),重新交叉编译后用arm-rockchip830-linux-uclibcgnueabihf进行链接。
ifeq ($(SYSDRV_CROSS),arm-rockchip830-linux-uclibcgnueabihf)
SYSDRV_LIB_TYPE := uclibc
ARCH := arm
SYSDRV_CROSS_CFLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=hard
endif
ifeq ($(SYSDRV_CROSS),arm-rockchip830-linux-gnueabihf)
SYSDRV_LIB_TYPE := glibc
ARCH := arm
SYSDRV_CROSS_CFLAGS += -march=armv7-a -mfpu=neon -mfloat-abi=hard
endif
我看源码里的makefile可以配置用glibc的工具链来编译,请问arm-rockchip830-linux-gnueabihf这个工具链我从哪里能拿到
这个工具链我们也没有,这可能时Rockchip在开发阶段使用的或者是其它芯片平台使用的,在media中有很多Makefile都提供了arm-rockchip830-linux-gnueabihf的编译选项,但是最后提供的资料中并没有这个编译工具的相关信息。