qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/i386: Fix linker error when ISAPC is disable


From: Montes, Julio
Subject: Re: [Qemu-devel] [PATCH] hw/i386: Fix linker error when ISAPC is disabled
Date: Wed, 3 Jul 2019 16:40:56 +0000

On Wed, 2019-07-03 at 18:21 +0200, Paolo Bonzini wrote:
> On 03/07/19 17:49, Julio Montes wrote:
> > In pc_init1(), ISA IDE is initialized without checking if ISAPC or
> > IDE_ISA
> > configs are enabled. This results in a link error when
> > CONFIG_ISAPC is set to 'n' in the file default-configs/i386-
> > softmmu.mak:
> > 
> > hw/i386/pc_piix.o: In function `pc_init1':
> > hw/i386/pc_piix.c:261: undefined reference to `isa_ide_init'
> > hw/i386/pc_piix.c:261: undefined reference to `isa_ide_init'
> > 
> > Place ide_isa code under #ifdef CONFIG_IDE_ISA to fix linker errors
> 
> But there is nothing that defines CONFIG_IDE_ISA, right?

yes I think you're right, do I need to use #ifdef CONFIG_ISAPC instead?
or how I can define CONFIG_IDE_ISA at build time?

> 
> Paolo
> 
> > Signed-off-by: Julio Montes <address@hidden>
> > ---
> >  hw/i386/pc_piix.c | 11 ++++++++---
> >  1 file changed, 8 insertions(+), 3 deletions(-)
> > 
> > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > index c07c4a5b38..b93f9327be 100644
> > --- a/hw/i386/pc_piix.c
> > +++ b/hw/i386/pc_piix.c
> > @@ -61,9 +61,11 @@
> >  
> >  #define MAX_IDE_BUS 2
> >  
> > +#ifdef CONFIG_IDE_ISA
> >  static const int ide_iobase[MAX_IDE_BUS] = { 0x1f0, 0x170 };
> >  static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 };
> >  static const int ide_irq[MAX_IDE_BUS] = { 14, 15 };
> > +#endif
> >  
> >  /* PC hardware initialisation */
> >  static void pc_init1(MachineState *machine,
> > @@ -254,7 +256,10 @@ static void pc_init1(MachineState *machine,
> >          }
> >          idebus[0] = qdev_get_child_bus(&dev->qdev, "ide.0");
> >          idebus[1] = qdev_get_child_bus(&dev->qdev, "ide.1");
> > -    } else {
> > +        pc_cmos_init(pcms, idebus[0], idebus[1], rtc_state);
> > +    }
> > +#ifdef CONFIG_IDE_ISA
> > +else {
> >          for(i = 0; i < MAX_IDE_BUS; i++) {
> >              ISADevice *dev;
> >              char busname[] = "ide.0";
> > @@ -268,9 +273,9 @@ static void pc_init1(MachineState *machine,
> >              busname[4] = '0' + i;
> >              idebus[i] = qdev_get_child_bus(DEVICE(dev), busname);
> >          }
> > +        pc_cmos_init(pcms, idebus[0], idebus[1], rtc_state);
> >      }
> > -
> > -    pc_cmos_init(pcms, idebus[0], idebus[1], rtc_state);
> > +#endif
> >  
> >      if (pcmc->pci_enabled && machine_usb(machine)) {
> >          pci_create_simple(pci_bus, piix3_devfn + 2, "piix3-usb-
> > uhci");
> > 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]