[Buildroot] Issue with compiling buildroot toolchain on Fedora

Adrian Prałat apralat.mikroel at gmail.com
Fri Jun 2 06:43:54 UTC 2023


Ok, issue fixed, this was not related to buildroot at all but to selinux.

In our config we have:

BR2_CCACHE=y
BR2_CCACHE_DIR="$(HOME)/.buildroot-ccache"

and some indication could be that in the config.log there is a line:

/home/mikroel/.buildroot-ccache/tmp: Permission denied

After changing the selinux flags on the directory it all started working 
again:

sudo chcon -Rt svirt_sandbox_file_t ~/.buildroot-ccache/

Thank you James for your help.

On 6/2/23 08:35, James Hilliard wrote:
> On Fri, Jun 2, 2023 at 12:28 AM Adrian Prałat <apralat.mikroel at gmail.com> wrote:
>> Right, yesterday I had no time so a quick glance did not show anything,
>> but today I searched for errors and found the possible culprit:
>>
>> configure:4715: $? = 0
>> configure:4704: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -v >&5
>> Using built-in specs.
>> COLLECT_GCC=/usr/bin/gcc
>> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
>> OFFLOAD_TARGET_NAMES=nvptx-none:hsa
>> OFFLOAD_TARGET_DEFAULT=1
>> Target: x86_64-linux-gnu
>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu
>> 9.4.0-1ubuntu1~20.04.1'
>> --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs
>> --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2
>> --prefix=/usr --with-gcc-major-version-only --program-suffix=-9
>> --program-prefix=x86_64-linux-gnu- --enable-shared
>> --enable-linker-build-id --libexecdir=/usr/lib
>> --without-included-gettext --enable-threads=posix --libdir=/usr/lib
>> --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
>> --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
>> --enable-gnu-unique-object --disable-vtable-verify --enable-plugin
>> --enable-default-pie --with-system-zlib --with-target-system-zlib=auto
>> --enable-objc-gc=auto --enable-multiarch --disable-werror
>> --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32
>> --enable-multilib --with-tune=generic
>> --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa
>> --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu
>> --host=x86_64-linux-gnu --target=x86_64-linux-gnu
>> Thread model: posix
>> gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
>> configure:4715: $? = 0
>> configure:4704: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -V >&5
>> gcc: error: unrecognized command line option '-V'
>> gcc: fatal error: no input files
>> compilation terminated.
>> configure:4715: $? = 1
>> configure:4704: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -qversion >&5
>> gcc: error: unrecognized command line option '-qversion'; did you mean
>> '--version'?
>> gcc: fatal error: no input files
>> compilation terminated.
>> configure:4715: $? = 1
>> configure:4735: checking whether the C compiler works
>> configure:4757: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -O2 -I/home/mikroel/project/buildroot/output/host/include
>> -I/home/mikroel/project/buildroot/output/host/include
>> -L/home/mikroel/project/buildroot/output/host/lib
>> -Wl,-rpath,/home/mikroel/project/buildroot/output/host/lib conftest.c  >&5
>> configure:4761: $? = 0
>> configure:4809: result: yes
>> configure:4812: checking for C compiler default output file name
>> configure:4814: result: a.out
>> configure:4820: checking for suffix of executables
>> configure:4827: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -o conftest -O2
>> -I/home/mikroel/project/buildroot/output/host/include
>> -I/home/mikroel/project/buildroot/output/host/include
>> -L/home/mikroel/project/buildroot/output/host/lib
>> -Wl,-rpath,/home/mikroel/project/buildroot/output/host/lib conftest.c  >&5
>> configure:4831: $? = 0
>> configure:4853: result:
>> configure:4875: checking whether we are cross compiling
>> configure:4883: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -o conftest -O2
>> -I/home/mikroel/project/buildroot/output/host/include
>> -I/home/mikroel/project/buildroot/output/host/include
>> -L/home/mikroel/project/buildroot/output/host/lib
>> -Wl,-rpath,/home/mikroel/project/buildroot/output/host/lib conftest.c  >&5
>> configure:4887: $? = 0
>> configure:4894: ./conftest
>> configure:4898: $? = 0
>> configure:4886: result: no
>> configure:4891: checking for suffix of object files
>> configure:4913: /home/mikroel/project/buildroot/output/host/bin/ccache
>> /usr/bin/gcc -c -O2
>> -I/home/mikroel/project/buildroot/output/host/include
>> -I/home/mikroel/project/buildroot/output/host/include conftest.c >&5
>> ccache: error: Failed to create directory
>> /home/mikroel/.buildroot-ccache/tmp: Permission denied
>> configure:4917: $? = 1
>> configure: failed program was:
>> | /* confdefs.h */
>> | #define PACKAGE_NAME "GNU M4"
>> | #define PACKAGE_TARNAME "m4"
>> | #define PACKAGE_VERSION "1.4.18"
>> | #define PACKAGE_STRING "GNU M4 1.4.18"
>> | #define PACKAGE_BUGREPORT "bug-m4 at gnu.org"
>> | #define PACKAGE_URL "http://www.gnu.org/software/m4/"
>> | #define PACKAGE "m4"
>> | #define VERSION "1.4.18"
>> | /* end confdefs.h.  */
>> |
>> | int
>> | main ()
>> | {
>> |
>> |   ;
>> |   return 0;
>> | }
>> configure:4931: error: in
>> `/home/mikroel/project/buildroot/output/build/host-m4-1.4.18':
>> configure:4933: error: cannot compute suffix of object files: cannot compile
>> See `config.log' for more details
>>
>> ## ---------------- ##
>> ## Cache variables. ##
>> ## ---------------- ##
>>
>> In package config I tried passing in the `--without-config` flag in the
>> `HOST_M4_CONF_OPTS`, but it made no difference. However, disabling the
>> ccache in the device config file allowed the compilation to proceed.
> Hmm, yeah error does look ccache related, what's your device config look like?
>
>> For my purposes this is ok for now, but I would like the ccache to
>> function properly, what can I do to help find the cause?
>>
>> On 6/2/23 08:12, James Hilliard wrote:
>>> On Fri, Jun 2, 2023 at 12:06 AM Adrian Prałat <apralat.mikroel at gmail.com> wrote:
>>>> Hi all,
>>>>
>>>> today we hit an issue with compiling the toolchain for our device, the issue is with the package M4.
>>>>
>>>> During the compilation on other machines running Debian (kernel 5.10.0-23-amd64) everything builds normally. On my system however (Fedora 38, kernel 6.3.4-201.fc38.x86_64) the build fails with the message:
>>>>
>>>> configure: error: cannot compute suffix of object files: cannot compile
>>>> See `config.log' for more details
>>>> make: *** [package/pkg-generic.mk:222: /home/mikroel/project/buildroot/output/build/host-m4-1.4.18/.stamp_configured] Error 1
>>>>
>>>> The only difference should be the kernel, since we build our images in ubuntu 22.04 docker containers. The issue is present on branch 2018.08.4 and also other branches, such as current 2023.05-rc2
>>>>
>>>> Any ideas on what can we can check or do to narrow down the issue and correct the problem in buildroot itself?
>>> Check the config.log file as the error message suggests.
>>>
>>>> --
>>>> Pozdrawiam / Regards, Adrian Prałat
>>>>
>>>> _______________________________________________
>>>> buildroot mailing list
>>>> buildroot at buildroot.org
>>>> https://lists.buildroot.org/mailman/listinfo/buildroot



More information about the buildroot mailing list