Patchwork cpu-defs.h: pull in qemu-common.h for HOST_LONG_BITS

login
register
mail settings
Submitter Mike Frysinger
Date July 15, 2012, 8:25 p.m.
Message ID <1342383931-11594-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/171086/
State New
Headers show

Comments

Stefan Weil - July 15, 2012, 7:34 p.m.
Am 15.07.2012 22:25, schrieb Mike Frysinger:
> This file uses the define HOST_LONG_BITS, but doesn't explicitly include
> qemu-common.h for it leading to build warnings for some setups:
> In file included from qemu/target-bfin/cpu.h:17,
>                   from qemu/cputlb.c:21:
> qemu/cpu-defs.h:83:5: warning: "HOST_LONG_BITS" is not defined
>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>   cpu-defs.h |    1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/cpu-defs.h b/cpu-defs.h
> index f49e950..0d6018d 100644
> --- a/cpu-defs.h
> +++ b/cpu-defs.h
> @@ -28,6 +28,7 @@
>   #include <inttypes.h>
>   #include <signal.h>
>   #include "osdep.h"
> +#include "qemu-common.h"
>   #include "qemu-queue.h"
>   #include "targphys.h"


No. Of course this works, but I don't think that it is reasonable
to include qemu-common.h in every *.h file. There are already too
many of them.

target-bfin/cpu.h should start like all other cpu.h files with
these include statements:

#include "config.h"
#include "qemu-common.h"

Regards,

Stefan Weil
Mike Frysinger - July 15, 2012, 8:25 p.m.
This file uses the define HOST_LONG_BITS, but doesn't explicitly include
qemu-common.h for it leading to build warnings for some setups:
In file included from qemu/target-bfin/cpu.h:17,
                 from qemu/cputlb.c:21:
qemu/cpu-defs.h:83:5: warning: "HOST_LONG_BITS" is not defined

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 cpu-defs.h |    1 +
 1 file changed, 1 insertion(+)
Mike Frysinger - July 15, 2012, 9:54 p.m.
On Sunday 15 July 2012 15:34:33 Stefan Weil wrote:
> Am 15.07.2012 22:25, schrieb Mike Frysinger:
> > This file uses the define HOST_LONG_BITS, but doesn't explicitly include
> > qemu-common.h for it leading to build warnings for some setups:
> > In file included from qemu/target-bfin/cpu.h:17,
> > 
> >                   from qemu/cputlb.c:21:
> > qemu/cpu-defs.h:83:5: warning: "HOST_LONG_BITS" is not defined
> > 
> > Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> > ---
> > 
> >   cpu-defs.h |    1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/cpu-defs.h b/cpu-defs.h
> > index f49e950..0d6018d 100644
> > --- a/cpu-defs.h
> > +++ b/cpu-defs.h
> > @@ -28,6 +28,7 @@
> > 
> >   #include <inttypes.h>
> >   #include <signal.h>
> >   #include "osdep.h"
> > 
> > +#include "qemu-common.h"
> > 
> >   #include "qemu-queue.h"
> >   #include "targphys.h"
> 
> No. Of course this works, but I don't think that it is reasonable
> to include qemu-common.h in every *.h file. There are already too
> many of them.
> 
> target-bfin/cpu.h should start like all other cpu.h files with
> these include statements:

sorry, but that's fragile junk.  if a header file uses defines from another 
header file, it should be including it.
-mike
Stefan Weil - July 16, 2012, 5:26 a.m.
Am 15.07.2012 23:54, schrieb Mike Frysinger:
> On Sunday 15 July 2012 15:34:33 Stefan Weil wrote:
>> Am 15.07.2012 22:25, schrieb Mike Frysinger:
>>> This file uses the define HOST_LONG_BITS, but doesn't explicitly include
>>> qemu-common.h for it leading to build warnings for some setups:
>>> In file included from qemu/target-bfin/cpu.h:17,
>>>
>>>                    from qemu/cputlb.c:21:
>>> qemu/cpu-defs.h:83:5: warning: "HOST_LONG_BITS" is not defined
>>>
>>> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
>>> ---
>>>
>>>    cpu-defs.h |    1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/cpu-defs.h b/cpu-defs.h
>>> index f49e950..0d6018d 100644
>>> --- a/cpu-defs.h
>>> +++ b/cpu-defs.h
>>> @@ -28,6 +28,7 @@
>>>
>>>    #include <inttypes.h>
>>>    #include <signal.h>
>>>    #include "osdep.h"
>>>
>>> +#include "qemu-common.h"
>>>
>>>    #include "qemu-queue.h"
>>>    #include "targphys.h"
>> No. Of course this works, but I don't think that it is reasonable
>> to include qemu-common.h in every *.h file. There are already too
>> many of them.
>>
>> target-bfin/cpu.h should start like all other cpu.h files with
>> these include statements:
> sorry, but that's fragile junk.  if a header file uses defines from another
> header file, it should be including it.
> -mike

There are different ways how things can be done.

Normally, I agree with you that each header file should be complete,
but that's not the QEMU style.

In your special case, it's more important to keep all */cpu.h similar.
qemu/target-bfin/cpu.h is still not part of the official QEMU code,
so it can be fixed before it is committed.

Cheers,

Stefan
Stefan Weil - July 16, 2012, 6:01 a.m.
Am 16.07.2012 07:26, schrieb Stefan Weil:
> Am 15.07.2012 23:54, schrieb Mike Frysinger:
>> On Sunday 15 July 2012 15:34:33 Stefan Weil wrote:
>>> Am 15.07.2012 22:25, schrieb Mike Frysinger:
>>>> This file uses the define HOST_LONG_BITS, but doesn't explicitly 
>>>> include
>>>> qemu-common.h for it leading to build warnings for some setups:
>>>> In file included from qemu/target-bfin/cpu.h:17,
>>>>
>>>>                    from qemu/cputlb.c:21:
>>>> qemu/cpu-defs.h:83:5: warning: "HOST_LONG_BITS" is not defined
>>>>
>>>> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
>>>> ---
>>>>
>>>>    cpu-defs.h |    1 +
>>>>    1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/cpu-defs.h b/cpu-defs.h
>>>> index f49e950..0d6018d 100644
>>>> --- a/cpu-defs.h
>>>> +++ b/cpu-defs.h
>>>> @@ -28,6 +28,7 @@
>>>>
>>>>    #include <inttypes.h>
>>>>    #include <signal.h>
>>>>    #include "osdep.h"
>>>>
>>>> +#include "qemu-common.h"
>>>>
>>>>    #include "qemu-queue.h"
>>>>    #include "targphys.h"
>>> No. Of course this works, but I don't think that it is reasonable
>>> to include qemu-common.h in every *.h file. There are already too
>>> many of them.
>>>
>>> target-bfin/cpu.h should start like all other cpu.h files with
>>> these include statements:
>> sorry, but that's fragile junk.  if a header file uses defines from 
>> another
>> header file, it should be including it.
>> -mike
>
> There are different ways how things can be done.
>
> Normally, I agree with you that each header file should be complete,
> but that's not the QEMU style.
>
> In your special case, it's more important to keep all */cpu.h similar.
> qemu/target-bfin/cpu.h is still not part of the official QEMU code,
> so it can be fixed before it is committed.
>
> Cheers,
>
> Stefan

IMHO it would be also a clean solution if the */cpu.h no longer include
config.h and qemu-common.h when those files are included in cpu-def.h.

For that solution, your patch could be a starting point, but it needs
more cleanup: include statements which are part of qemu-common.h
need no duplication in cpu-def.h.

- Stefan
Mike Frysinger - July 18, 2012, 12:13 p.m.
On Monday 16 July 2012 01:26:50 Stefan Weil wrote:
> Am 15.07.2012 23:54, schrieb Mike Frysinger:
> > On Sunday 15 July 2012 15:34:33 Stefan Weil wrote:
> >> Am 15.07.2012 22:25, schrieb Mike Frysinger:
> >>> This file uses the define HOST_LONG_BITS, but doesn't explicitly
> >>> include qemu-common.h for it leading to build warnings for some
> >>> setups: In file included from qemu/target-bfin/cpu.h:17,
> >>> 
> >>>                    from qemu/cputlb.c:21:
> >>> qemu/cpu-defs.h:83:5: warning: "HOST_LONG_BITS" is not defined
> >>> 
> >>> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> >>> ---
> >>> 
> >>>    cpu-defs.h |    1 +
> >>>    1 file changed, 1 insertion(+)
> >>> 
> >>> diff --git a/cpu-defs.h b/cpu-defs.h
> >>> index f49e950..0d6018d 100644
> >>> --- a/cpu-defs.h
> >>> +++ b/cpu-defs.h
> >>> @@ -28,6 +28,7 @@
> >>> 
> >>>    #include <inttypes.h>
> >>>    #include <signal.h>
> >>>    #include "osdep.h"
> >>> 
> >>> +#include "qemu-common.h"
> >>> 
> >>>    #include "qemu-queue.h"
> >>>    #include "targphys.h"
> >> 
> >> No. Of course this works, but I don't think that it is reasonable
> >> to include qemu-common.h in every *.h file. There are already too
> >> many of them.
> >> 
> >> target-bfin/cpu.h should start like all other cpu.h files with
> > 
> >> these include statements:
> > sorry, but that's fragile junk.  if a header file uses defines from
> > another header file, it should be including it.
> > -mike
> 
> There are different ways how things can be done.
> 
> Normally, I agree with you that each header file should be complete,
> but that's not the QEMU style.
> 
> In your special case, it's more important to keep all */cpu.h similar.
> qemu/target-bfin/cpu.h is still not part of the official QEMU code,
> so it can be fixed before it is committed.

a lot of existing files in the top level pull in qemu-common.h.  i don't think 
this is a special case considering it's the first failure i've seen since i 
started the Blackfin port over a year ago.
-mike
Andreas Färber - July 18, 2012, 1:14 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 18.07.2012 14:13, schrieb Mike Frysinger:
> On Monday 16 July 2012 01:26:50 Stefan Weil wrote:
>> Am 15.07.2012 23:54, schrieb Mike Frysinger:
>>> On Sunday 15 July 2012 15:34:33 Stefan Weil wrote:
>>>> Am 15.07.2012 22:25, schrieb Mike Frysinger:
>>>>> This file uses the define HOST_LONG_BITS, but doesn't
>>>>> explicitly include qemu-common.h for it leading to build
>>>>> warnings for some setups: In file included from
>>>>> qemu/target-bfin/cpu.h:17,
>>>>> 
>>>>> from qemu/cputlb.c:21: qemu/cpu-defs.h:83:5: warning:
>>>>> "HOST_LONG_BITS" is not defined
>>>>> 
>>>>> Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---
>>>>> 
>>>>> cpu-defs.h |    1 + 1 file changed, 1 insertion(+)
>>>>> 
>>>>> diff --git a/cpu-defs.h b/cpu-defs.h index f49e950..0d6018d
>>>>> 100644 --- a/cpu-defs.h +++ b/cpu-defs.h @@ -28,6 +28,7 @@
>>>>> 
>>>>> #include <inttypes.h> #include <signal.h> #include
>>>>> "osdep.h"
>>>>> 
>>>>> +#include "qemu-common.h"
>>>>> 
>>>>> #include "qemu-queue.h" #include "targphys.h"
>>>> 
>>>> No. Of course this works, but I don't think that it is
>>>> reasonable to include qemu-common.h in every *.h file. There
>>>> are already too many of them.
>>>> 
>>>> target-bfin/cpu.h should start like all other cpu.h files
>>>> with
>>> 
>>>> these include statements:
>>> sorry, but that's fragile junk.  if a header file uses defines
>>> from another header file, it should be including it. -mike
>> 
>> There are different ways how things can be done.
>> 
>> Normally, I agree with you that each header file should be
>> complete, but that's not the QEMU style.
>> 
>> In your special case, it's more important to keep all */cpu.h
>> similar. qemu/target-bfin/cpu.h is still not part of the official
>> QEMU code, so it can be fixed before it is committed.
> 
> a lot of existing files in the top level pull in qemu-common.h.  i
> don't think this is a special case considering it's the first
> failure i've seen since i started the Blackfin port over a year
> ago.

Long-term the cpu-defs.h header should go away, so moving stuff into
it and dropping it elsewhere seems not the best of ideas.

qemu-common.h includes cpu.h under some circumstances, which will
include cpu-defs.h, so a circular dependency, not a good idea either.

CPU is pretty tricky terrain. I've been working on improving it but
progress is slow because a solution for one thing tends to conflict
with someone else's work...

Andreas

- -- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)

iQIcBAEBAgAGBQJQBrbEAAoJEPou0S0+fgE/WdYP/RMYVj96Rig55BaByc6G0T8w
iBFJ9WcALzna9pAtjkj716K9nsEGxF5/s8Z3t7MpCznMdZbeQeKko2pJeB0fbqqg
9Gj7ErpkHBQvo4v4UQ99MX2/cmqfDjAZ8a25GK0KP9MW32uqFK2mUOSt7f9nKyMm
HtJKRhdsTrO0x3zm5i+A3jEyMmbduU0WKB8bwIk6xiwmVRbqRvc/M2RqOyG9WnFf
LRJpNm7yXJlzShcmaNbtl7+DyUN6CX4cGUQ85l7gRrzpRQIJrGjMOJqwhdQotvRc
r02AgzLaQHVn26mTFT+LvUVIOhNMH/+uaDITmMdUyumcytAZAu17EhgWir/qtNNq
rQe82UVSghW6Os6oS/NR+8UOAfpgWGaUra1xxoiJIO+h+OO0smx2yLSicaKR6n1R
isGAx8KaSI/ypCdECZu14U2bnysYUUeGnpXAOqcx/gh+LP2riE2qT5qf22799+U2
lpgb+Vodfq6u4+xThU3aoRtWXMU+5nHnsx++6FZdgjzdesJgYdBuIfG1IH2prOdO
8Q1JVMndDwsRYiXJ9MB/v7e9kEo6JqqZA+V2hHLVmmP9SMuiCUEWzxwfYqKyryuA
eJw2MRHF0Bx68mAmqMfiU+TY6xogpG0sUrLkchoFKuTwpF4HEDBBiN/3ciMSpnak
kWYgVZrUpL7jDaEQsSZl
=x1X7
-----END PGP SIGNATURE-----

Patch

diff --git a/cpu-defs.h b/cpu-defs.h
index f49e950..0d6018d 100644
--- a/cpu-defs.h
+++ b/cpu-defs.h
@@ -28,6 +28,7 @@ 
 #include <inttypes.h>
 #include <signal.h>
 #include "osdep.h"
+#include "qemu-common.h"
 #include "qemu-queue.h"
 #include "targphys.h"