Ah yeah I've always found the inline keyword a bit confusing but revisiting some documentation it does make sense in a case such as this.
Also, hah ! I'm not sure why, but I read "*arch/arm/kernel/" *as if you were using arch ( the distro ) . . . silly me. I also did a google search on various parts of the output you pasted, and nothing relevant came to my attention. I was hoping to help, and in the process learn something new myself . . . as in my nature, but it seems in this case I was not quite so helpful. One thing I did notice. Was that this must be a very new "issue". Some searches only yielded this post, and mail archive posts related to this. e.g. 1-3 total hits depending on which part of the output to search for. Anyway, if you figure it out let us know :) On Fri, Jul 3, 2015 at 7:47 PM, Dallas Clement <[email protected]> wrote: > Hi William. Thanks for the reply. I think the more important thing is > that this function should be declared "inline". Adding this to these > functions in of.h seems to allow the kernel to compile successfully without > multiple declaration issues. > > Btw, this problem is very easy to reproduce. > > Just do the following on the 4.1 branch. > > ARCH=arm make omap2plus_defconfig > > ARCH=arm > CROSS_COMPILE=../dl/gcc-linaro-4.9-2015.02-3-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- > make zImage > > On Friday, July 3, 2015 at 9:02:05 PM UTC-5, William Hermans wrote: >> >> Sorry function *or* global variable would be more correct. >> >> On Fri, Jul 3, 2015 at 6:58 PM, William Hermans <[email protected]> wrote: >> >>> Also, the static keyword in this context would be meant to limit scope >>> of a function to the file in which is resides, It does not seem correct to >>> me, but that does not mean I'm right either. >>> >>> On Fri, Jul 3, 2015 at 6:56 PM, William Hermans <[email protected]> >>> wrote: >>> >>>> *arch/arm/kernel/time.o:* In function `of_changeset_add_property_u32': >>>> >>>> /*home/dallas/projects/**mineredge/me-1.6/standard-* >>>> *firmware/buildroot/output/**build/linux-4.1/include/linux/**of.h:1116*: >>>> multiple definition of `of_changeset_add_property_u32' >>>> >>>> So, I do not know everything when it comes to building the kernel. You >>>> definitely have multiple definitions happening between object / header >>>> files. >>>> >>>> What is the correlation between arch/arm/kernel/ and the header files >>>> in your home directory ? Do you have multiple sets of kernel files on the >>>> system ( for the BBB, for different kernels ) and in use ? If so may have >>>> the path to the header files set incorrectly, for the kernel you're trying >>>> to build. If the path is set correctly, then "make clean" before running >>>> "make" may be in order. >>>> >>>> Unfortunately, I am not all that familiar with buildroot, or arch so I >>>> suppose this could be desired behavior ( your directory structure ), but >>>> from the outside looking in, it seems suspect. >>>> >>>> On Fri, Jul 3, 2015 at 4:49 PM, Dallas Clement <[email protected]> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> I attempted to upgrade from the kernel from 3.14 to 4.1 today. I'm >>>>> getting some compilation issues which seem to be caused by certain >>>>> dynamically generated function definitions not being declared static >>>>> inline >>>>> in include/linux/of.h. If I hand edit this file and add a static inline >>>>> in >>>>> front of the function definitions, compilation proceeds successfully with >>>>> no errors. It looks like maybe these functions are added dynamically to >>>>> this header file during compilation. >>>>> >>>>> arch/arm/kernel/time.o: In function `of_changeset_add_property_u32': >>>>> /home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1116: >>>>> multiple definition of `of_changeset_add_property_u32' >>>>> arch/arm/kernel/setup.o:/home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1116: >>>>> first defined here >>>>> arch/arm/kernel/time.o: In function `of_changeset_add_property_copy': >>>>> /home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/arch/arm/kernel/time.c:61: >>>>> multiple definition of `of_changeset_add_property_copy' >>>>> arch/arm/kernel/setup.o:/home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/arch/arm/kernel/setup.c:1116: >>>>> first defined here >>>>> arch/arm/kernel/time.o: In function `of_changeset_add_property_string': >>>>> /home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1089: >>>>> multiple definition of `of_changeset_add_property_string' >>>>> arch/arm/kernel/setup.o:/home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1089: >>>>> first defined here >>>>> arch/arm/kernel/time.o: In function `of_changeset_add_property_bool': >>>>> /home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1122: >>>>> multiple definition of `of_changeset_add_property_bool' >>>>> arch/arm/kernel/setup.o:/home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1122: >>>>> first defined here >>>>> arch/arm/kernel/time.o: In function >>>>> `of_changeset_add_property_string_list': >>>>> /home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1110: >>>>> multiple definition of `of_changeset_add_property_string_list' >>>>> arch/arm/kernel/setup.o:/home/dallas/projects/mineredge/me-1.6/standard-firmware/buildroot/output/build/linux-4.1/include/linux/of.h:1110: >>>>> first defined here >>>>> >>>>> Would appreciate any help anyone can provide. >>>>> >>>>> Dallas >>>>> >>>>> -- >>>>> For more options, visit http://beagleboard.org/discuss >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "BeagleBoard" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>> >> -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
