You can add a dispatcher which switches between 2 modules. E.g. real_do_stuff (...); fake_do_stuff(...);
static int (*do_stuff)( ...); And switch pointer between 2 implementations. See terminal output and grub_xputs for examples On Mon, Feb 26, 2024 at 1:51 PM Michael Lawnick via Grub-devel <grub-devel@gnu.org> wrote: > > Hi group, > > hope you can help me: > I have modules pci_fpga.c and pci_fpga_emul.c with same functions in > them but different implementation, one for the real device, the other > one is just emulating. > > What I now want is being able to include one of both versions through > build command. I started with this: > > Makefile.core.def: > ... > module = { > name = pci_fpga; > common = startlib/board/pci_fpga.c; > enable = efi; > }; > > module = { > name = pci_fpga_emul; > common = startlib/board/pci_fpga_emul.c; > enable = efi; > }; > ... > > but then I get duplicate symbols error even without giving pci_fpga or > pci_fpga_emul on the build. > > For using different packages than 'common' like this > module = { > name = pci_fpga; > pci_fpga = startlib/board/pci_fpga.c; > enable = efi; > }; > I could not find means to get pci_fpga included. > > Same problem if trying to approach it via different enable flag: How to do? > > Can anybody help? In docs I couldn't find usable hints. > > -- > KR > Michael > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel -- Regards Vladimir 'phcoder' Serbinenko _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel