All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
@ 2017-07-25 22:55 Programmingkid
  2017-07-26  4:13 ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 9+ messages in thread
From: Programmingkid @ 2017-07-25 22:55 UTC (permalink / raw)
  To: qemu-devel@nongnu.org qemu-devel; +Cc: Aurelien Jarno, Yongbok Kim, James Hogan

While compiling the mips64el-softmmu target I encountered these errors:

  CC      hw/display/g364fb.o
hw/core/loader-fit.c:105:41: error: expected expression
        *addr = fdt32_to_cpu(*(fdt32_t *)prop);
                                        ^
hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
        *addr = fdt32_to_cpu(*(fdt32_t *)prop);
                               ^
hw/core/loader-fit.c:108:41: error: expected expression
        *addr = fdt64_to_cpu(*(fdt64_t *)prop);
                                        ^
hw/core/loader-fit.c:108:32: error: use of undeclared identifier 'fdt64_t'
        *addr = fdt64_to_cpu(*(fdt64_t *)prop);
                               ^
hw/core/loader-fit.c:278:19: warning: implicit declaration of function
      'fdt_first_subnode' is invalid in C99 [-Wimplicit-function-declaration]
            off = fdt_first_subnode(itb, configs);
                  ^
hw/core/loader-fit.c:286:23: warning: implicit declaration of function
      'fdt_next_subnode' is invalid in C99 [-Wimplicit-function-declaration]
                off = fdt_next_subnode(itb, off);
                      ^
2 warnings and 4 errors generated.
make: *** [hw/core/loader-fit.o] Error 1
make: *** Waiting for unfinished jobs….



Steps to reproduce the error:
./configure --target-list=mips64el-softmmu && make

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-25 22:55 [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression Programmingkid
@ 2017-07-26  4:13 ` Philippe Mathieu-Daudé
  2017-07-26  5:15   ` Programmingkid
  2017-07-26 10:45   ` Yongbok Kim
  0 siblings, 2 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-07-26  4:13 UTC (permalink / raw)
  To: Programmingkid, qemu-devel@nongnu.org qemu-devel
  Cc: Yongbok Kim, James Hogan, Aurelien Jarno

Hi John,

On 07/25/2017 07:55 PM, Programmingkid wrote:
> While compiling the mips64el-softmmu target I encountered these errors:
> 
>    CC      hw/display/g364fb.o
> hw/core/loader-fit.c:105:41: error: expected expression
>          *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>                                          ^
> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'

It seems you are missing the libfdt headers, so indeed you found bug.

Replacing CONFIG_FITLOADER by CONFIG_FDT in hw/core/Makefile.objs and 
default-configs/mips64el-softmmu.mak should fix it, can you try?

>          *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>                                 ^
> hw/core/loader-fit.c:108:41: error: expected expression
>          *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>                                          ^
> hw/core/loader-fit.c:108:32: error: use of undeclared identifier 'fdt64_t'
>          *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>                                 ^
> hw/core/loader-fit.c:278:19: warning: implicit declaration of function
>        'fdt_first_subnode' is invalid in C99 [-Wimplicit-function-declaration]
>              off = fdt_first_subnode(itb, configs);
>                    ^
> hw/core/loader-fit.c:286:23: warning: implicit declaration of function
>        'fdt_next_subnode' is invalid in C99 [-Wimplicit-function-declaration]
>                  off = fdt_next_subnode(itb, off);
>                        ^
> 2 warnings and 4 errors generated.
> make: *** [hw/core/loader-fit.o] Error 1
> make: *** Waiting for unfinished jobs….

It'd be useful if next time you also tell which compiler/version are you 
using.

> Steps to reproduce the error:
> ./configure --target-list=mips64el-softmmu && make

And also the ./configure output, I'm interested by:

"fdt support       no"

Regards,

Phil.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26  4:13 ` Philippe Mathieu-Daudé
@ 2017-07-26  5:15   ` Programmingkid
  2017-07-26 10:24     ` Peter Maydell
  2017-07-26 10:45   ` Yongbok Kim
  1 sibling, 1 reply; 9+ messages in thread
From: Programmingkid @ 2017-07-26  5:15 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: qemu-devel@nongnu.org qemu-devel


> On Jul 26, 2017, at 12:13 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> 
> Hi John,
> 
> On 07/25/2017 07:55 PM, Programmingkid wrote:
>> While compiling the mips64el-softmmu target I encountered these errors:
>>   CC      hw/display/g364fb.o
>> hw/core/loader-fit.c:105:41: error: expected expression
>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>                                         ^
>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
> 
> It seems you are missing the libfdt headers, so indeed you found bug.
> 
> Replacing CONFIG_FITLOADER by CONFIG_FDT in hw/core/Makefile.objs and default-configs/mips64el-softmmu.mak should fix it, can you try?

That appears to help make things move past the loader-fit.c file. Here are the new errors:

  CC      hw/core/loader-fit.o
  CC      hw/dma/rc4030.o
  CC      hw/ide/via.o
hw/core/loader-fit.c:105:41: error: expected expression
        *addr = fdt32_to_cpu(*(fdt32_t *)prop);
                                        ^
hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
        *addr = fdt32_to_cpu(*(fdt32_t *)prop);
                               ^
hw/core/loader-fit.c:108:41: error: expected expression
        *addr = fdt64_to_cpu(*(fdt64_t *)prop);
                                        ^
hw/core/loader-fit.c:108:32: error: use of undeclared identifier 'fdt64_t'
        *addr = fdt64_to_cpu(*(fdt64_t *)prop);
                               ^
hw/core/loader-fit.c:278:19: warning: implicit declaration of function
      'fdt_first_subnode' is invalid in C99 [-Wimplicit-function-declaration]
            off = fdt_first_subnode(itb, configs);
                  ^
hw/core/loader-fit.c:286:23: warning: implicit declaration of function
      'fdt_next_subnode' is invalid in C99 [-Wimplicit-function-declaration]
                off = fdt_next_subnode(itb, off);
                      ^
2 warnings and 4 errors generated.
make: *** [hw/core/loader-fit.o] Error 1
make: *** Waiting for unfinished jobs....


> 
>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>                                ^
>> hw/core/loader-fit.c:108:41: error: expected expression
>>         *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>>                                         ^
>> hw/core/loader-fit.c:108:32: error: use of undeclared identifier 'fdt64_t'
>>         *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>>                                ^
>> hw/core/loader-fit.c:278:19: warning: implicit declaration of function
>>       'fdt_first_subnode' is invalid in C99 [-Wimplicit-function-declaration]
>>             off = fdt_first_subnode(itb, configs);
>>                   ^
>> hw/core/loader-fit.c:286:23: warning: implicit declaration of function
>>       'fdt_next_subnode' is invalid in C99 [-Wimplicit-function-declaration]
>>                 off = fdt_next_subnode(itb, off);
>>                       ^
>> 2 warnings and 4 errors generated.
>> make: *** [hw/core/loader-fit.o] Error 1
>> make: *** Waiting for unfinished jobs….
> 
> It'd be useful if next time you also tell which compiler/version are you using.

gcc -v:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

> 
>> Steps to reproduce the error:
>> ./configure --target-list=mips64el-softmmu && make
> 
> And also the ./configure output, I'm interested by:
> 
> "fdt support       no”

Actually it was "fdt support       yes”.

> 
> Regards,
> 
> Phil.

Thanks for the help. Here is some more info that might help:

Here is the full configure output:

./configure --target-list=mips64el-softmmu
Install prefix    /usr/local
BIOS directory    /usr/local/share/qemu
binary directory  /usr/local/bin
library directory /usr/local/lib
module directory  /usr/local/lib/qemu
libexec directory /usr/local/libexec
include directory /usr/local/include
config directory  /usr/local/etc
local state directory   /usr/local/var
Manual directory  /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /Users/john/Documents/Development/Projects/Qemu/qemu-git
C compiler        cc
Host C compiler   cc
C++ compiler      c++
Objective-C compiler clang
ARFLAGS           rv
CFLAGS            -O2 -g 
QEMU_CFLAGS       -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -D_REENTRANT -I/usr/local/Cellar/glib/2.46.2/include/glib-2.0 -I/usr/local/Cellar/glib/2.46.2/lib/glib-2.0/include -I/usr/local/opt/gettext/include -DNCURSES_WIDECHAR -D_DARWIN_C_SOURCE -I/opt/local/include -m64 -mcx16 -DOS_OBJECT_USE_OBJC=0 -arch x86_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wno-string-plus-int -Wno-initializer-overrides -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/local/Cellar/gnutls/3.4.11/include -I/usr/local/Cellar/nettle/3.2/include -I/usr/local/Cellar/libtasn1/4.8/include -I/opt/local/include -I/usr/local/Cellar/nettle/3.2/include   -I/usr/local/Cellar/libpng/1.6.29/include/libpng16 -I/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0 -I/usr/local/Cellar/usbredir/0.7.1/include
LDFLAGS           -m64 -framework CoreFoundation -framework IOKit -arch x86_64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       mips64el-softmmu
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
Cocoa support     yes
pixman            system
SDL support       no 
GTK support       no 
GTK GL support    no
VTE support       yes (0.39.92)
TLS priority      NORMAL
GNUTLS support    yes
GNUTLS rnd        yes
libgcrypt         no
libgcrypt kdf     no
nettle            yes (3.2)
nettle kdf        yes
libtasn1          yes
curses support    yes
virgl support     no
curl support      yes
mingw32 support   no
Audio drivers     coreaudio
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  yes
VNC JPEG support  yes
VNC PNG support   yes
xen support       no
brlapi support    no
bluez  support    no
Documentation     yes
PIE               no
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support no
Install blobs     yes
KVM support       no
HAX support       yes
TCG support       yes
TCG debug enabled no
TCG interpreter   no
RDMA support      no
fdt support       yes
preadv support    no
fdatasync         no
madvise           yes
posix_madvise     yes
libcap-ng support no
vhost-net support no
vhost-scsi support no
vhost-vsock support no
Trace backends    log
spice support     no 
rbd support       no
xfsctl support    no
smartcard support no
libusb            yes
usb net redir     yes
OpenGL support    no
OpenGL dmabufs    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend sigaltstack
coroutine pool    yes
debug stack usage no
crypto afalg      no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   no
TPM passthrough   no
QOM debugging     yes
Live block migration yes
lzo support       no
snappy support    no
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization no
replication support yes
VxHS block device no

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26  5:15   ` Programmingkid
@ 2017-07-26 10:24     ` Peter Maydell
  2017-07-26 16:46       ` Programmingkid
  0 siblings, 1 reply; 9+ messages in thread
From: Peter Maydell @ 2017-07-26 10:24 UTC (permalink / raw)
  To: Programmingkid
  Cc: Philippe Mathieu-Daudé, qemu-devel@nongnu.org qemu-devel

On 26 July 2017 at 06:15, Programmingkid <programmingkidx@gmail.com> wrote:
>
>> On Jul 26, 2017, at 12:13 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>
>> Hi John,
>>
>> On 07/25/2017 07:55 PM, Programmingkid wrote:
>>> While compiling the mips64el-softmmu target I encountered these errors:
>>>   CC      hw/display/g364fb.o
>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>                                         ^
>>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
>>
>> It seems you are missing the libfdt headers, so indeed you found bug.

Configure requires libfdt to exist to enable mips64el-softmmu,
so something is going wrong with our configure test compared
to how QEMU itself is being built.

> That appears to help make things move past the loader-fit.c file. Here are the new errors:
>
>   CC      hw/core/loader-fit.o
>   CC      hw/dma/rc4030.o
>   CC      hw/ide/via.o
> hw/core/loader-fit.c:105:41: error: expected expression
>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>                                         ^

...this is still failing on loader-fit.c in the same way.

>> And also the ./configure output, I'm interested by:
>>
>> "fdt support       no”
>
> Actually it was "fdt support       yes”.

Configure thinks the fdt headers are available...

> ./configure --target-list=mips64el-softmmu
> Install prefix    /usr/local
> BIOS directory    /usr/local/share/qemu
> binary directory  /usr/local/bin
> library directory /usr/local/lib
> module directory  /usr/local/lib/qemu
> libexec directory /usr/local/libexec
> include directory /usr/local/include
> config directory  /usr/local/etc
> local state directory   /usr/local/var
> Manual directory  /usr/local/share/man
> ELF interp prefix /usr/gnemul/qemu-%M
> Source path       /Users/john/Documents/Development/Projects/Qemu/qemu-git
> C compiler        cc
> Host C compiler   cc
> C++ compiler      c++
> Objective-C compiler clang
> ARFLAGS           rv
> CFLAGS            -O2 -g
> QEMU_CFLAGS       -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -D_REENTRANT -I/usr/local/Cellar/glib/2.46.2/include

...and it's put our local copy of libfdt on the include path.

The fdt32_t type that the compiler is complaining
about ought to be defined in the header in
dtc/libfdt/libfdt_env.h.

I wonder if you have an old copy of that submodule;
if so then "git submodule update" ought to fix it.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26  4:13 ` Philippe Mathieu-Daudé
  2017-07-26  5:15   ` Programmingkid
@ 2017-07-26 10:45   ` Yongbok Kim
  2017-07-26 17:24     ` Programmingkid
  1 sibling, 1 reply; 9+ messages in thread
From: Yongbok Kim @ 2017-07-26 10:45 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Programmingkid, qemu-devel@nongnu.org qemu-devel
  Cc: James Hogan, Aurelien Jarno



On 26/07/2017 05:13, Philippe Mathieu-Daudé wrote:
> Hi John,
> 
> On 07/25/2017 07:55 PM, Programmingkid wrote:
>> While compiling the mips64el-softmmu target I encountered these errors:
>>
>>    CC      hw/display/g364fb.o
>> hw/core/loader-fit.c:105:41: error: expected expression
>>          *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>                                          ^
>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
> 
> It seems you are missing the libfdt headers, so indeed you found bug.
> 
> Replacing CONFIG_FITLOADER by CONFIG_FDT in hw/core/Makefile.objs and
> default-configs/mips64el-softmmu.mak should fix it, can you try?
> 
>>          *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>                                 ^
>> hw/core/loader-fit.c:108:41: error: expected expression
>>          *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>>                                          ^
>> hw/core/loader-fit.c:108:32: error: use of undeclared identifier 'fdt64_t'
>>          *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>>                                 ^
>> hw/core/loader-fit.c:278:19: warning: implicit declaration of function
>>        'fdt_first_subnode' is invalid in C99
>> [-Wimplicit-function-declaration]
>>              off = fdt_first_subnode(itb, configs);
>>                    ^
>> hw/core/loader-fit.c:286:23: warning: implicit declaration of function
>>        'fdt_next_subnode' is invalid in C99
>> [-Wimplicit-function-declaration]
>>                  off = fdt_next_subnode(itb, off);
>>                        ^
>> 2 warnings and 4 errors generated.
>> make: *** [hw/core/loader-fit.o] Error 1
>> make: *** Waiting for unfinished jobs….
> 
> It'd be useful if next time you also tell which compiler/version are you
> using.
> 
>> Steps to reproduce the error:
>> ./configure --target-list=mips64el-softmmu && make
> 
> And also the ./configure output, I'm interested by:
> 
> "fdt support       no"
> 
> Regards,
> 
> Phil.



Hi,

As Philippe pointed, it looks like something with dtc(libfdt).
Could you also try to install DTC into your QEMU source base?
By default for mips64el-softmmu, if DTC is not compatible you should get
this message.

ERROR: DTC (libfdt) version >= 1.4.2 not present. Your options:
         (1) Preferred: Install the DTC (libfdt) devel package
         (2) Fetch the DTC submodule, using:
             git submodule update --init dtc

Since I am not able to reproduce the problem on my machines,
please let us know the detail of your system.

$ ../master/configure --target-list=mips64el-softmmu && make -j
...
  GEN     trace/generated-helpers.c
  CC      mips64el-softmmu/trace/control-target.o
  CC      mips64el-softmmu/trace/generated-helpers.o
  LINK    mips64el-softmmu/qemu-system-mips64el

Regards,
Yongbok

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26 10:24     ` Peter Maydell
@ 2017-07-26 16:46       ` Programmingkid
  2017-07-26 21:02         ` Philippe Mathieu-Daudé
  2017-07-26 21:03         ` Philippe Mathieu-Daudé
  0 siblings, 2 replies; 9+ messages in thread
From: Programmingkid @ 2017-07-26 16:46 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Philippe Mathieu-Daudé, qemu-devel@nongnu.org qemu-devel


> On Jul 26, 2017, at 6:24 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
> 
> On 26 July 2017 at 06:15, Programmingkid <programmingkidx@gmail.com> wrote:
>> 
>>> On Jul 26, 2017, at 12:13 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>> 
>>> Hi John,
>>> 
>>> On 07/25/2017 07:55 PM, Programmingkid wrote:
>>>> While compiling the mips64el-softmmu target I encountered these errors:
>>>>  CC      hw/display/g364fb.o
>>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>>        *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>>                                        ^
>>>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
>>> 
>>> It seems you are missing the libfdt headers, so indeed you found bug.
> 
> Configure requires libfdt to exist to enable mips64el-softmmu,
> so something is going wrong with our configure test compared
> to how QEMU itself is being built.
> 
>> That appears to help make things move past the loader-fit.c file. Here are the new errors:
>> 
>>  CC      hw/core/loader-fit.o
>>  CC      hw/dma/rc4030.o
>>  CC      hw/ide/via.o
>> hw/core/loader-fit.c:105:41: error: expected expression
>>        *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>                                        ^
> 
> ...this is still failing on loader-fit.c in the same way.
> 
>>> And also the ./configure output, I'm interested by:
>>> 
>>> "fdt support       no”
>> 
>> Actually it was "fdt support       yes”.
> 
> Configure thinks the fdt headers are available…

They appear to be available. The dtc/libfdt folder does have the files QEMU uses. 

> 
>> ./configure --target-list=mips64el-softmmu
>> Install prefix    /usr/local
>> BIOS directory    /usr/local/share/qemu
>> binary directory  /usr/local/bin
>> library directory /usr/local/lib
>> module directory  /usr/local/lib/qemu
>> libexec directory /usr/local/libexec
>> include directory /usr/local/include
>> config directory  /usr/local/etc
>> local state directory   /usr/local/var
>> Manual directory  /usr/local/share/man
>> ELF interp prefix /usr/gnemul/qemu-%M
>> Source path       /Users/john/Documents/Development/Projects/Qemu/qemu-git
>> C compiler        cc
>> Host C compiler   cc
>> C++ compiler      c++
>> Objective-C compiler clang
>> ARFLAGS           rv
>> CFLAGS            -O2 -g
>> QEMU_CFLAGS       -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -D_REENTRANT -I/usr/local/Cellar/glib/2.46.2/include
> 
> ...and it's put our local copy of libfdt on the include path.
> 
> The fdt32_t type that the compiler is complaining
> about ought to be defined in the header in
> dtc/libfdt/libfdt_env.h.

The fdt32_t type is not there. Here is the full libfdt_env.h file:

#ifndef _LIBFDT_ENV_H
#define _LIBFDT_ENV_H

#include <stddef.h>
#include <stdint.h>
#include <string.h>

#define _B(n)	((unsigned long long)((uint8_t *)&x)[n])
static inline uint32_t fdt32_to_cpu(uint32_t x)
{
	return (_B(0) << 24) | (_B(1) << 16) | (_B(2) << 8) | _B(3);
}
#define cpu_to_fdt32(x) fdt32_to_cpu(x)

static inline uint64_t fdt64_to_cpu(uint64_t x)
{
	return (_B(0) << 56) | (_B(1) << 48) | (_B(2) << 40) | (_B(3) << 32)
		| (_B(4) << 24) | (_B(5) << 16) | (_B(6) << 8) | _B(7);
}
#define cpu_to_fdt64(x) fdt64_to_cpu(x)
#undef _B

#endif /* _LIBFDT_ENV_H */


> I wonder if you have an old copy of that submodule;
> if so then "git submodule update" ought to fix it.

I’m not sure how to obtain the version of libfdt. I did see a file called version.lds.
At the top of this file is this text: "LIBFDT_1.2 {"
So maybe I am using version 1.2. Perhaps the configure test should declare a variable
of the fdt32_t type in the test code.

After doing a git submodule update qemu-system-mips64el compiled successfully. Thank you.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26 10:45   ` Yongbok Kim
@ 2017-07-26 17:24     ` Programmingkid
  0 siblings, 0 replies; 9+ messages in thread
From: Programmingkid @ 2017-07-26 17:24 UTC (permalink / raw)
  To: Yongbok Kim
  Cc: Philippe Mathieu-Daudé,
	qemu-devel@nongnu.org qemu-devel, James Hogan, Aurelien Jarno


> On Jul 26, 2017, at 6:45 AM, Yongbok Kim <yongbok.kim@imgtec.com> wrote:
> 
> 
> 
> On 26/07/2017 05:13, Philippe Mathieu-Daudé wrote:
>> Hi John,
>> 
>> On 07/25/2017 07:55 PM, Programmingkid wrote:
>>> While compiling the mips64el-softmmu target I encountered these errors:
>>> 
>>>   CC      hw/display/g364fb.o
>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>                                         ^
>>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
>> 
>> It seems you are missing the libfdt headers, so indeed you found bug.
>> 
>> Replacing CONFIG_FITLOADER by CONFIG_FDT in hw/core/Makefile.objs and
>> default-configs/mips64el-softmmu.mak should fix it, can you try?
>> 
>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>                                ^
>>> hw/core/loader-fit.c:108:41: error: expected expression
>>>         *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>>>                                         ^
>>> hw/core/loader-fit.c:108:32: error: use of undeclared identifier 'fdt64_t'
>>>         *addr = fdt64_to_cpu(*(fdt64_t *)prop);
>>>                                ^
>>> hw/core/loader-fit.c:278:19: warning: implicit declaration of function
>>>       'fdt_first_subnode' is invalid in C99
>>> [-Wimplicit-function-declaration]
>>>             off = fdt_first_subnode(itb, configs);
>>>                   ^
>>> hw/core/loader-fit.c:286:23: warning: implicit declaration of function
>>>       'fdt_next_subnode' is invalid in C99
>>> [-Wimplicit-function-declaration]
>>>                 off = fdt_next_subnode(itb, off);
>>>                       ^
>>> 2 warnings and 4 errors generated.
>>> make: *** [hw/core/loader-fit.o] Error 1
>>> make: *** Waiting for unfinished jobs….
>> 
>> It'd be useful if next time you also tell which compiler/version are you
>> using.
>> 
>>> Steps to reproduce the error:
>>> ./configure --target-list=mips64el-softmmu && make
>> 
>> And also the ./configure output, I'm interested by:
>> 
>> "fdt support       no"
>> 
>> Regards,
>> 
>> Phil.
> 
> 
> 
> Hi,
> 
> As Philippe pointed, it looks like something with dtc(libfdt).
> Could you also try to install DTC into your QEMU source base?
> By default for mips64el-softmmu, if DTC is not compatible you should get
> this message.
> 
> ERROR: DTC (libfdt) version >= 1.4.2 not present. Your options:
>         (1) Preferred: Install the DTC (libfdt) devel package
>         (2) Fetch the DTC submodule, using:
>             git submodule update --init dtc
> 
> Since I am not able to reproduce the problem on my machines,
> please let us know the detail of your system.
> 
> $ ../master/configure --target-list=mips64el-softmmu && make -j
> ...
>  GEN     trace/generated-helpers.c
>  CC      mips64el-softmmu/trace/control-target.o
>  CC      mips64el-softmmu/trace/generated-helpers.o
>  LINK    mips64el-softmmu/qemu-system-mips64el
> 
> Regards,
> Yongbok

My host system is Mac OS 10.12. It looks like I was using an older version of libfdt.
Updating fixed the problem. Thank you.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26 16:46       ` Programmingkid
@ 2017-07-26 21:02         ` Philippe Mathieu-Daudé
  2017-07-26 21:03         ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-07-26 21:02 UTC (permalink / raw)
  To: Programmingkid, Peter Maydell; +Cc: qemu-devel@nongnu.org qemu-devel

On 07/26/2017 01:46 PM, Programmingkid wrote:
>> On Jul 26, 2017, at 6:24 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
>> On 26 July 2017 at 06:15, Programmingkid <programmingkidx@gmail.com> wrote:
>>>> On Jul 26, 2017, at 12:13 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>>>
>>>> Hi John,
>>>>
>>>> On 07/25/2017 07:55 PM, Programmingkid wrote:
>>>>> While compiling the mips64el-softmmu target I encountered these errors:
>>>>>   CC      hw/display/g364fb.o
>>>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>>>                                         ^
>>>>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
>>>>
>>>> It seems you are missing the libfdt headers, so indeed you found bug.
>>
>> Configure requires libfdt to exist to enable mips64el-softmmu,
>> so something is going wrong with our configure test compared
>> to how QEMU itself is being built.
>>
>>> That appears to help make things move past the loader-fit.c file. Here are the new errors:
>>>
>>>   CC      hw/core/loader-fit.o
>>>   CC      hw/dma/rc4030.o
>>>   CC      hw/ide/via.o

It looks you ran "make -j3" firing 3 CC tasks.

>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>                                         ^
>>
>> ...this is still failing on loader-fit.c in the same way.
>>
>>>> And also the ./configure output, I'm interested by:
>>>>
>>>> "fdt support       no”
>>>
>>> Actually it was "fdt support       yes”.
>>
>> Configure thinks the fdt headers are available…
> 
> They appear to be available. The dtc/libfdt folder does have the files QEMU uses.
> 
>>
>>> ./configure --target-list=mips64el-softmmu
>>> Install prefix    /usr/local
>>> BIOS directory    /usr/local/share/qemu
>>> binary directory  /usr/local/bin
>>> library directory /usr/local/lib
>>> module directory  /usr/local/lib/qemu
>>> libexec directory /usr/local/libexec
>>> include directory /usr/local/include
>>> config directory  /usr/local/etc
>>> local state directory   /usr/local/var
>>> Manual directory  /usr/local/share/man
>>> ELF interp prefix /usr/gnemul/qemu-%M
>>> Source path       /Users/john/Documents/Development/Projects/Qemu/qemu-git
>>> C compiler        cc
>>> Host C compiler   cc
>>> C++ compiler      c++
>>> Objective-C compiler clang
>>> ARFLAGS           rv
>>> CFLAGS            -O2 -g
>>> QEMU_CFLAGS       -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -D_REENTRANT -I/usr/local/Cellar/glib/2.46.2/include
>>
>> ...and it's put our local copy of libfdt on the include path.
>>
>> The fdt32_t type that the compiler is complaining
>> about ought to be defined in the header in
>> dtc/libfdt/libfdt_env.h.
> 
> The fdt32_t type is not there. Here is the full libfdt_env.h file:
> 
> #ifndef _LIBFDT_ENV_H
> #define _LIBFDT_ENV_H
> 
> #include <stddef.h>
> #include <stdint.h>
> #include <string.h>
> 
> #define _B(n)	((unsigned long long)((uint8_t *)&x)[n])
> static inline uint32_t fdt32_to_cpu(uint32_t x)
> {
> 	return (_B(0) << 24) | (_B(1) << 16) | (_B(2) << 8) | _B(3);
> }
> #define cpu_to_fdt32(x) fdt32_to_cpu(x)
> 
> static inline uint64_t fdt64_to_cpu(uint64_t x)
> {
> 	return (_B(0) << 56) | (_B(1) << 48) | (_B(2) << 40) | (_B(3) << 32)
> 		| (_B(4) << 24) | (_B(5) << 16) | (_B(6) << 8) | _B(7);
> }
> #define cpu_to_fdt64(x) fdt64_to_cpu(x)
> #undef _B
> 
> #endif /* _LIBFDT_ENV_H */
> 
> 
>> I wonder if you have an old copy of that submodule;
>> if so then "git submodule update" ought to fix it.
> 
> I’m not sure how to obtain the version of libfdt. I did see a file called version.lds.
> At the top of this file is this text: "LIBFDT_1.2 {"
> So maybe I am using version 1.2. Perhaps the configure test should declare a variable
> of the fdt32_t type in the test code.
> 
> After doing a git submodule update qemu-system-mips64el compiled successfully. Thank you.

Oops I wanted to ask your "git submodule status" output before that, to 
reproduce your bug. Anyway checking out a pre-v1.4.2 is enough.

Peter I guess I found the culprit, compile_prog is not called for dtc 
submodule. I'll send a patch.

Regards,

Phil.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression
  2017-07-26 16:46       ` Programmingkid
  2017-07-26 21:02         ` Philippe Mathieu-Daudé
@ 2017-07-26 21:03         ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-07-26 21:03 UTC (permalink / raw)
  To: Programmingkid, Peter Maydell; +Cc: qemu-devel@nongnu.org qemu-devel

On 07/26/2017 01:46 PM, Programmingkid wrote:
>> On Jul 26, 2017, at 6:24 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
>> On 26 July 2017 at 06:15, Programmingkid <programmingkidx@gmail.com> wrote:
>>>> On Jul 26, 2017, at 12:13 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>>>
>>>> Hi John,
>>>>
>>>> On 07/25/2017 07:55 PM, Programmingkid wrote:
>>>>> While compiling the mips64el-softmmu target I encountered these errors:
>>>>>   CC      hw/display/g364fb.o
>>>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>>>                                         ^
>>>>> hw/core/loader-fit.c:105:32: error: use of undeclared identifier 'fdt32_t'
>>>>
>>>> It seems you are missing the libfdt headers, so indeed you found bug.
>>
>> Configure requires libfdt to exist to enable mips64el-softmmu,
>> so something is going wrong with our configure test compared
>> to how QEMU itself is being built.
>>
>>> That appears to help make things move past the loader-fit.c file. Here are the new errors:
>>>
>>>   CC      hw/core/loader-fit.o
>>>   CC      hw/dma/rc4030.o
>>>   CC      hw/ide/via.o

It looks you ran "make -j3" firing 3 CC tasks.

>>> hw/core/loader-fit.c:105:41: error: expected expression
>>>         *addr = fdt32_to_cpu(*(fdt32_t *)prop);
>>>                                         ^
>>
>> ...this is still failing on loader-fit.c in the same way.
>>
>>>> And also the ./configure output, I'm interested by:
>>>>
>>>> "fdt support       no”
>>>
>>> Actually it was "fdt support       yes”.
>>
>> Configure thinks the fdt headers are available…
> 
> They appear to be available. The dtc/libfdt folder does have the files QEMU uses.
> 
>>
>>> ./configure --target-list=mips64el-softmmu
>>> Install prefix    /usr/local
>>> BIOS directory    /usr/local/share/qemu
>>> binary directory  /usr/local/bin
>>> library directory /usr/local/lib
>>> module directory  /usr/local/lib/qemu
>>> libexec directory /usr/local/libexec
>>> include directory /usr/local/include
>>> config directory  /usr/local/etc
>>> local state directory   /usr/local/var
>>> Manual directory  /usr/local/share/man
>>> ELF interp prefix /usr/gnemul/qemu-%M
>>> Source path       /Users/john/Documents/Development/Projects/Qemu/qemu-git
>>> C compiler        cc
>>> Host C compiler   cc
>>> C++ compiler      c++
>>> Objective-C compiler clang
>>> ARFLAGS           rv
>>> CFLAGS            -O2 -g
>>> QEMU_CFLAGS       -I/usr/local/Cellar/pixman/0.34.0/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -D_REENTRANT -I/usr/local/Cellar/glib/2.46.2/include
>>
>> ...and it's put our local copy of libfdt on the include path.
>>
>> The fdt32_t type that the compiler is complaining
>> about ought to be defined in the header in
>> dtc/libfdt/libfdt_env.h.
> 
> The fdt32_t type is not there. Here is the full libfdt_env.h file:
> 
> #ifndef _LIBFDT_ENV_H
> #define _LIBFDT_ENV_H
> 
> #include <stddef.h>
> #include <stdint.h>
> #include <string.h>
> 
> #define _B(n)	((unsigned long long)((uint8_t *)&x)[n])
> static inline uint32_t fdt32_to_cpu(uint32_t x)
> {
> 	return (_B(0) << 24) | (_B(1) << 16) | (_B(2) << 8) | _B(3);
> }
> #define cpu_to_fdt32(x) fdt32_to_cpu(x)
> 
> static inline uint64_t fdt64_to_cpu(uint64_t x)
> {
> 	return (_B(0) << 56) | (_B(1) << 48) | (_B(2) << 40) | (_B(3) << 32)
> 		| (_B(4) << 24) | (_B(5) << 16) | (_B(6) << 8) | _B(7);
> }
> #define cpu_to_fdt64(x) fdt64_to_cpu(x)
> #undef _B
> 
> #endif /* _LIBFDT_ENV_H */
> 
> 
>> I wonder if you have an old copy of that submodule;
>> if so then "git submodule update" ought to fix it.
> 
> I’m not sure how to obtain the version of libfdt. I did see a file called version.lds.
> At the top of this file is this text: "LIBFDT_1.2 {"
> So maybe I am using version 1.2. Perhaps the configure test should declare a variable
> of the fdt32_t type in the test code.
> 
> After doing a git submodule update qemu-system-mips64el compiled successfully. Thank you.

Oops I wanted to ask your "git submodule status" output before that, to 
reproduce your bug. Anyway checking out a pre-v1.4.2 is enough.

Peter I guess I found the culprit, compile_prog is not called for dtc 
submodule. I'll send a patch.

Regards,

Phil.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-07-26 21:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-25 22:55 [Qemu-devel] hw/core/loader-fit.c:105:41: error: expected expression Programmingkid
2017-07-26  4:13 ` Philippe Mathieu-Daudé
2017-07-26  5:15   ` Programmingkid
2017-07-26 10:24     ` Peter Maydell
2017-07-26 16:46       ` Programmingkid
2017-07-26 21:02         ` Philippe Mathieu-Daudé
2017-07-26 21:03         ` Philippe Mathieu-Daudé
2017-07-26 10:45   ` Yongbok Kim
2017-07-26 17:24     ` Programmingkid

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.