Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

cannot compile on raspberry pi fedora 17 #215

Closed
Rudd-O opened this issue Feb 5, 2013 · 10 comments
Closed

cannot compile on raspberry pi fedora 17 #215

Rudd-O opened this issue Feb 5, 2013 · 10 comments
Milestone

Comments

@Rudd-O
Copy link

Rudd-O commented Feb 5, 2013

What it says:
remote: checking whether modules can be built... no

But CONFIG_MODULES=y in kernel config
[rudd-o@melody dragonfear-infra]$ cat /boot/config-3.2.27-1.20120926git9245b4c.rpfr17 | grep -i modules
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_MODULES=y


remote: TASK: [compile SPL] *********************
remote: failed: [melody.dragonfear] => {"changed": true, "cmd": " ./autogen.sh && ./configure && make rpm-utils rpm-dkms && touch compile-successful ", "delta": "0:02:30.773445", "end": "2013-02-05 00:04:33.675464", "rc": 1, "start": "2013-02-05 00:02:02.902019"}
remote: stderr: configure.ac:31: installing config/config.guess' remote: configure.ac:31: installingconfig/config.sub'
remote: configure.ac:34: installing config/install-sh' remote: configure.ac:34: installingconfig/missing'
remote: cmd/Makefile.am: installing `config/depcomp'
remote: configure: error: *** Unable to build an empty module.
remote: stdout: checking metadata... yes
remote: checking build system type... armv6l-unknown-linux-gnueabi
remote: checking host system type... armv6l-unknown-linux-gnueabi
remote: checking target system type... armv6l-unknown-linux-gnueabi
remote: checking whether to enable maintainer-specific portions of Makefiles... no
remote: checking whether make supports nested variables... no
remote: checking for a BSD-compatible install... /usr/bin/install -c
remote: checking whether build environment is sane... yes
remote: checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
remote: checking for gawk... gawk
remote: checking whether make sets $(MAKE)... no
remote: checking for gcc... gcc
remote: checking whether the C compiler works... yes
remote: checking for C compiler default output file name... a.out
remote: checking for suffix of executables...
remote: checking whether we are cross compiling... no
remote: checking for suffix of object files... o
remote: checking whether we are using the GNU C compiler... yes
remote: checking whether gcc accepts -g... yes
remote: checking for gcc option to accept ISO C89... none needed
remote: checking for style of include used by make... none
remote: checking dependency style of gcc... none
remote: checking how to print strings... printf
remote: checking for a sed that does not truncate output... /usr/bin/sed
remote: checking for grep that handles long lines and -e... /usr/bin/grep
remote: checking for egrep... /usr/bin/grep -E
remote: checking for fgrep... /usr/bin/grep -F
remote: checking for ld used by gcc... /usr/bin/ld
remote: checking if the linker (/usr/bin/ld) is GNU ld... yes
remote: checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
remote: checking the name lister (/usr/bin/nm -B) interface... BSD nm
remote: checking whether ln -s works... yes
remote: checking the maximum length of command line arguments... 1572864
remote: checking whether the shell understands some XSI constructs... yes
remote: checking whether the shell understands "+="... yes
remote: checking how to convert armv6l-unknown-linux-gnueabi file names to armv6l-unknown-linux-gnueabi format... func_convert_file_noop
remote: checking how to convert armv6l-unknown-linux-gnueabi file names to toolchain format... func_convert_file_noop
remote: checking for /usr/bin/ld option to reload object files... -r
remote: checking for objdump... objdump
remote: checking how to recognize dependent libraries... pass_all
remote: checking for dlltool... no
remote: checking how to associate runtime and link libraries... printf %s\n
remote: checking for ar... ar
remote: checking for archiver @file support... @
remote: checking for strip... strip
remote: checking for ranlib... ranlib
remote: checking command to parse /usr/bin/nm -B output from gcc object... ok
remote: checking for sysroot... no
remote: checking for mt... no
remote: checking if : is a manifest tool... no
remote: checking how to run the C preprocessor... gcc -E
remote: checking for ANSI C header files... yes
remote: checking for sys/types.h... yes
remote: checking for sys/stat.h... yes
remote: checking for stdlib.h... yes
remote: checking for string.h... yes
remote: checking for memory.h... yes
remote: checking for strings.h... yes
remote: checking for inttypes.h... yes
remote: checking for stdint.h... yes
remote: checking for unistd.h... yes
remote: checking for dlfcn.h... yes
remote: checking for objdir... .libs
remote: checking if gcc supports -fno-rtti -fno-exceptions... no
remote: checking for gcc option to produce PIC... -fPIC -DPIC
remote: checking if gcc PIC flag -fPIC -DPIC works... yes
remote: checking if gcc static flag -static works... no
remote: checking if gcc supports -c -o file.o... yes
remote: checking if gcc supports -c -o file.o... (cached) yes
remote: checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
remote: checking whether -lc should be explicitly linked in... no
remote: checking dynamic linker characteristics... GNU/Linux ld.so
remote: checking how to hardcode library paths into programs... immediate
remote: checking whether stripping libraries is possible... yes
remote: checking if libtool supports shared libraries... yes
remote: checking whether to build shared libraries... yes
remote: checking whether to build static libraries... yes
remote: checking spl license... GPL
remote: checking linux distribution... redhat
remote: checking default package type... rpm
remote: checking whether rpm is available... yes (4.9.1.3)
remote: checking whether rpmbuild is available... yes (4.9.1.3)
remote: checking whether dpkg is available... no
remote: checking whether dpkg-buildpackage is available... no
remote: checking whether alien is available... no
remote: checking spl config... all
remote: checking kernel source directory... /usr/src/kernels/3.4.2-3.fc17.armv5tel
remote: checking kernel build directory... /usr/src/kernels/3.4.2-3.fc17.armv5tel
remote: checking kernel source version... 3.4.2-3.fc17.armv5tel
remote: checking kernel file name for module symbols... Module.symvers
remote: checking whether debugging is enabled... no
remote: checking whether basic debug logging is enabled... yes
remote: checking whether basic kmem accounting is enabled... yes
remote: checking whether detailed kmem tracking is enabled... no
remote: checking whether modules can be built... no
remote:
remote: FATAL: all hosts have already failed -- aborting


@Rudd-O
Copy link
Author

Rudd-O commented Feb 5, 2013

Make is not available. That appears to be initially the reason why it woht work. Time for a make test m4.!

@Rudd-O
Copy link
Author

Rudd-O commented Feb 5, 2013

will close in about 5E10 seconds when the pi is done compiling lawl

@Rudd-O
Copy link
Author

Rudd-O commented Feb 5, 2013

nono, it's actually a thing:

configure:17685: error: *** Unable to build an empty module.

configure:17664: cp conftest.c build && make modules -C /usr/src/kernels/3.4.2-3.fc17.armv5tel EXTRA_CFLAGS=-Werror-implicit-function-declaration M=/usr/src/spl/build
In file included from include/linux/timex.h:174:0,
from include/linux/jiffies.h:8,
from include/linux/ktime.h:25,
from include/linux/timer.h:5,
from include/linux/workqueue.h:8,
from include/linux/kmod.h:26,
from include/linux/module.h:13,
from /usr/src/spl/build/conftest.mod.c:1:
/usr/src/kernels/3.4.2-3.fc17.armv5tel/arch/arm/include/asm/timex.h:15:24: fatal error: mach/timex.h: No such file or directory
compilation terminated.
make[1]: *** [/usr/src/spl/build/conftest.mod.o] Error 1
make: *** [modules] Error 2
configure:17667: $? = 2
configure: failed program was:
| /* confdefs.h /
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define SPL_META_NAME "spl"
| #define SPL_META_VERSION "0.6.0"
| #define SPL_META_RELEASE "rc13"
| #define SPL_META_ALIAS "spl-0.6.0-rc13"
| #define PACKAGE "spl"
| #define VERSION "0.6.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define DEBUG_LOG 1
| #define DEBUG_KMEM 1
|
|
| int
| main (void)
| {
|
| ;
| return 0;
| }
|
configure:17682: result: no
configure:17685: error: *
* Unable to build an empty module.

@Rudd-O
Copy link
Author

Rudd-O commented Feb 5, 2013

I know, I know... http://forums.nas4free.org/viewtopic.php?f=61&t=260 (see picard), but still... ideas?

@ryao
Copy link
Contributor

ryao commented Feb 5, 2013

I would make a copy of the above program and then run the build command with V=1 to see what is being passed to GCC. It looks like the kernel build system is not setting up includes correctly.

It should be telling the C preprocessor to search /usr/src/kernels/3.4.2-3.fc17.armv5tel/arch/arm/mach-$subarch/include for headers for some $subarch, but that is not happening here.

I suspect that this is a RedHat-specific regression. This works on Gentoo with the Raspberry Pi kernel sources.

@Rudd-O
Copy link
Author

Rudd-O commented Feb 6, 2013

Yah this is weird:
.fc17.armv5tel EXTRA
the architecture is actuall armv6l
Linux melody.dragonfear 3.2.27 #1 PREEMPT Mon Oct 1 22:37:41 UTC 2012 armv6l armv6l armv6l GNU/Linux

Makes no sense what they did.

@ryao
Copy link
Contributor

ryao commented Feb 6, 2013

It just occurred to me that you should use the Raspberry Pi kernel sources to build the kernel. No other kernel sources are compatible with that hardware as far as I know.

@Rudd-O
Copy link
Author

Rudd-O commented Feb 9, 2013

Three days after, the kernel is finally compiled. Doing ZFS now, SPL worked. Wish me luck.

@Rudd-O
Copy link
Author

Rudd-O commented Feb 9, 2013

Compile appears to work. Closing this issue.

@Rudd-O Rudd-O closed this as completed Feb 9, 2013
@behlendorf
Copy link
Contributor

Good news, thanks for the update.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants