| Submitter | Bruce Majia |
|---|---|
| Date | March 22, 2010, 6:16 a.m. |
| Message ID | <20100322061658.GC20376@localhost> |
| Download | mbox | patch |
| Permalink | /patch/48252/ |
| State | New |
| Headers | show |
Comments
Bruce Majia schrieb: > Hi, > > When I built qemu on my x86_32 host with following configure line: > > $ ./configure --prefix=/usr/local/qemus/master \ > --target-list=i386-softmmu > $ make > > The build will always fail with message: > ---------------------------------------- > ... > CC i386-softmmu/fpu/softfloat-native.o > /mnt/farm/my_repo/qemu/fpu/softfloat-native.c:130:5: error: > "HOST_LONG_BITS" is not defined > make[1]: *** [fpu/softfloat-native.o] Error 1 > make: *** [subdir-i386-softmmu] Error 2 > ---------------------------------------- > > Is this a known issue or something wrong with my configure line? > > Though I can make it work with a minor nasty patch: > ============== > diff --git a/fpu/softfloat-native.c b/fpu/softfloat-native.c > index 049c830..5ba5013 100644 > --- a/fpu/softfloat-native.c > +++ b/fpu/softfloat-native.c > @@ -127,6 +127,9 @@ floatx80 int64_to_floatx80( int64_t v STATUS_PARAM) > #endif > > /* XXX: this code implements the x86 behaviour, not the IEEE one. */ > +#ifndef HOST_LONG_BITS > +#define HOST_LONG_BITS 32 > +#endif > #if HOST_LONG_BITS == 32 > static inline int long_to_int32(long a) > { > ============== > > I thought it may necessary to ask if something wrong with above hack. > And can we get the problem fixed properly? > > Thanks. > -b I had this problem with incremental builds several times, too. A new make from scratch (all generated files removed) always worked, so I don't think your patch is needed. Regards, Stefan
On Mon, Mar 22, 2010 at 09:31:09AM +0100, Stefan Weil wrote: > Bruce Majia schrieb: > > Hi, > > > > When I built qemu on my x86_32 host with following configure line: > > > > $ ./configure --prefix=/usr/local/qemus/master \ > > --target-list=i386-softmmu > > $ make > > > > The build will always fail with message: > > ---------------------------------------- > > ... > > CC i386-softmmu/fpu/softfloat-native.o > > /mnt/farm/my_repo/qemu/fpu/softfloat-native.c:130:5: error: > > "HOST_LONG_BITS" is not defined > > make[1]: *** [fpu/softfloat-native.o] Error 1 > > make: *** [subdir-i386-softmmu] Error 2 > > ---------------------------------------- > > > > Is this a known issue or something wrong with my configure line? > > > > Though I can make it work with a minor nasty patch: > > ============== > > diff --git a/fpu/softfloat-native.c b/fpu/softfloat-native.c > > index 049c830..5ba5013 100644 > > --- a/fpu/softfloat-native.c > > +++ b/fpu/softfloat-native.c > > @@ -127,6 +127,9 @@ floatx80 int64_to_floatx80( int64_t v STATUS_PARAM) > > #endif > > > > /* XXX: this code implements the x86 behaviour, not the IEEE one. */ > > +#ifndef HOST_LONG_BITS > > +#define HOST_LONG_BITS 32 > > +#endif > > #if HOST_LONG_BITS == 32 > > static inline int long_to_int32(long a) > > { > > ============== > > > > I thought it may necessary to ask if something wrong with above hack. > > And can we get the problem fixed properly? > > > > Thanks. > > -b > > I had this problem with incremental builds several times, too. > A new make from scratch (all generated files removed) always worked, > so I don't think your patch is needed. Yes, you are right. I must messed up several incremental builds and clean build. While I just tried clean configure and build, I just got warning like this: fpu/softfloat-native.c:132:5: warning: "HOST_LONG_BITS" is not defined That is fine to me. Though it would be better to avoid the warning. :) Thanks. -b
Bruce Majia <bruce.majia@gmail.com> wrote: > Hi, > > When I built qemu on my x86_32 host with following configure line: > try to do first a: make distclean > $ ./configure --prefix=/usr/local/qemus/master \ > --target-list=i386-softmmu > $ make there are several config.h & config.mak around (from old builds) you need to remove then 1st. Later, Juan.
Juan Quintela wrote: > Bruce Majia <bruce.majia@gmail.com> wrote: >> Hi, >> >> When I built qemu on my x86_32 host with following configure line: >> > > try to do first a: > make distclean > >> $ ./configure --prefix=/usr/local/qemus/master \ >> --target-list=i386-softmmu >> $ make > > there are several config.h & config.mak around (from old builds) you > need to remove then 1st. Doesn't the fact that this is required for a proper rebuild indicate some issue in the build system? I just recall a recent multi-hour debugging session of mine which turned out to be due to an inconsistent build after moving forward in the git history (in qemu-kvm, but the code change came from upstream). Or are there some fundamentally unresolvable scenarios so that a distclean is mandatory after every git update? Jan
Jan Kiszka <jan.kiszka@siemens.com> wrote: > Juan Quintela wrote: >> Bruce Majia <bruce.majia@gmail.com> wrote: >>> Hi, >>> >>> When I built qemu on my x86_32 host with following configure line: >>> >> >> try to do first a: >> make distclean >> >>> $ ./configure --prefix=/usr/local/qemus/master \ >>> --target-list=i386-softmmu >>> $ make >> >> there are several config.h & config.mak around (from old builds) you >> need to remove then 1st. > > Doesn't the fact that this is required for a proper rebuild indicate > some issue in the build system? I just recall a recent multi-hour > debugging session of mine which turned out to be due to an inconsistent > build after moving forward in the git history (in qemu-kvm, but the code > change came from upstream). Or are there some fundamentally unresolvable > scenarios so that a distclean is mandatory after every git update? Humm, no, it should only happens if you update from a _very_ old qemu (very old means something between qemu-0.11 - 0.12). If you had need it after 0.12, it is a different bug and should be fixed. Later, Juan.
Juan Quintela wrote: > Jan Kiszka <jan.kiszka@siemens.com> wrote: >> Juan Quintela wrote: >>> Bruce Majia <bruce.majia@gmail.com> wrote: >>>> Hi, >>>> >>>> When I built qemu on my x86_32 host with following configure line: >>>> >>> try to do first a: >>> make distclean >>> >>>> $ ./configure --prefix=/usr/local/qemus/master \ >>>> --target-list=i386-softmmu >>>> $ make >>> there are several config.h & config.mak around (from old builds) you >>> need to remove then 1st. >> Doesn't the fact that this is required for a proper rebuild indicate >> some issue in the build system? I just recall a recent multi-hour >> debugging session of mine which turned out to be due to an inconsistent >> build after moving forward in the git history (in qemu-kvm, but the code >> change came from upstream). Or are there some fundamentally unresolvable >> scenarios so that a distclean is mandatory after every git update? > > Humm, no, it should only happens if you update from a _very_ old qemu > (very old means something between qemu-0.11 - 0.12). > > If you had need it after 0.12, it is a different bug and should be fixed. > I think I tried to reproduced this, but I failed after purging the buggy output directory (out-of-tree build): http://thread.gmane.org/gmane.comp.emulators.kvm.devel/47499 Maybe you are luckier than I :), or we have to wait for the next issue to come. Jan
Jan Kiszka <jan.kiszka@siemens.com> wrote: > Juan Quintela wrote: >> Jan Kiszka <jan.kiszka@siemens.com> wrote: >>> Juan Quintela wrote: >>>> Bruce Majia <bruce.majia@gmail.com> wrote: >>>>> Hi, >>>>> >>>>> When I built qemu on my x86_32 host with following configure line: >>>>> >>>> try to do first a: >>>> make distclean >>>> >>>>> $ ./configure --prefix=/usr/local/qemus/master \ >>>>> --target-list=i386-softmmu >>>>> $ make >>>> there are several config.h & config.mak around (from old builds) you >>>> need to remove then 1st. >>> Doesn't the fact that this is required for a proper rebuild indicate >>> some issue in the build system? I just recall a recent multi-hour >>> debugging session of mine which turned out to be due to an inconsistent >>> build after moving forward in the git history (in qemu-kvm, but the code >>> change came from upstream). Or are there some fundamentally unresolvable >>> scenarios so that a distclean is mandatory after every git update? >> >> Humm, no, it should only happens if you update from a _very_ old qemu >> (very old means something between qemu-0.11 - 0.12). >> >> If you had need it after 0.12, it is a different bug and should be fixed. >> > > I think I tried to reproduced this, but I failed after purging the buggy g> output directory (out-of-tree build): > > http://thread.gmane.org/gmane.comp.emulators.kvm.devel/47499 > > Maybe you are luckier than I :), or we have to wait for the next issue > to come. Looking at it. I normally are "unlucky" person on that cases. It hasn't happened to me, but will take a look. Later, Juan.
Patch
============== diff --git a/fpu/softfloat-native.c b/fpu/softfloat-native.c index 049c830..5ba5013 100644 --- a/fpu/softfloat-native.c +++ b/fpu/softfloat-native.c @@ -127,6 +127,9 @@ floatx80 int64_to_floatx80( int64_t v STATUS_PARAM) #endif /* XXX: this code implements the x86 behaviour, not the IEEE one. */ +#ifndef HOST_LONG_BITS +#define HOST_LONG_BITS 32 +#endif #if HOST_LONG_BITS == 32 static inline int long_to_int32(long a) {