Fix grub-emu build on FreeBSD.
* Makefile.util.def (grub-mount): Add LIBGEOM to ldadd. * grub-core/net/drivers/emu/emunet.c: Only include Linux-specific headers on Linux. (GRUB_MOD_INIT): Return immediately on non-Linux platforms; this implementation is currently Linux-specific. * util/getroot.c (exec_pipe): Define only on Linux or when either libzfs or libnvpair is unavailable. (find_root_devices_from_poolname): Remove unused path variable.
This commit is contained in:
parent
86d08fdb18
commit
794c8c3375
4 changed files with 29 additions and 4 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
2012-09-22 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
|
Fix grub-emu build on FreeBSD.
|
||||||
|
|
||||||
|
* Makefile.util.def (grub-mount): Add LIBGEOM to ldadd.
|
||||||
|
* grub-core/net/drivers/emu/emunet.c: Only include Linux-specific
|
||||||
|
headers on Linux.
|
||||||
|
(GRUB_MOD_INIT): Return immediately on non-Linux platforms; this
|
||||||
|
implementation is currently Linux-specific.
|
||||||
|
* util/getroot.c (exec_pipe): Define only on Linux or when either
|
||||||
|
libzfs or libnvpair is unavailable.
|
||||||
|
(find_root_devices_from_poolname): Remove unused path variable.
|
||||||
|
|
||||||
2012-09-19 Colin Watson <cjwatson@ubuntu.com>
|
2012-09-19 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
* grub-core/partmap/msdos.c (pc_partition_map_embed): Revert
|
* grub-core/partmap/msdos.c (pc_partition_map_embed): Revert
|
||||||
|
|
|
@ -266,7 +266,7 @@ program = {
|
||||||
ldadd = libgrubgcry.a;
|
ldadd = libgrubgcry.a;
|
||||||
ldadd = libgrubkern.a;
|
ldadd = libgrubkern.a;
|
||||||
ldadd = grub-core/gnulib/libgnu.a;
|
ldadd = grub-core/gnulib/libgnu.a;
|
||||||
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) -lfuse';
|
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM) -lfuse';
|
||||||
condition = COND_GRUB_MOUNT;
|
condition = COND_GRUB_MOUNT;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,10 @@
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <grub/net.h>
|
#include <grub/net.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <linux/if.h>
|
#ifdef __linux__
|
||||||
#include <linux/if_tun.h>
|
# include <linux/if.h>
|
||||||
|
# include <linux/if_tun.h>
|
||||||
|
#endif /* __linux__ */
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -97,6 +99,7 @@ static struct grub_net_card emucard =
|
||||||
|
|
||||||
GRUB_MOD_INIT(emunet)
|
GRUB_MOD_INIT(emunet)
|
||||||
{
|
{
|
||||||
|
#ifdef __linux__
|
||||||
struct ifreq ifr;
|
struct ifreq ifr;
|
||||||
fd = open ("/dev/net/tun", O_RDWR | O_NONBLOCK);
|
fd = open ("/dev/net/tun", O_RDWR | O_NONBLOCK);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
|
@ -110,6 +113,10 @@ GRUB_MOD_INIT(emunet)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
grub_net_card_register (&emucard);
|
grub_net_card_register (&emucard);
|
||||||
|
#else /* !__linux__ */
|
||||||
|
fd = -1;
|
||||||
|
return;
|
||||||
|
#endif /* __linux__ */
|
||||||
}
|
}
|
||||||
|
|
||||||
GRUB_MOD_FINI(emunet)
|
GRUB_MOD_FINI(emunet)
|
||||||
|
|
|
@ -220,6 +220,9 @@ xgetcwd (void)
|
||||||
|
|
||||||
#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__GNU__)
|
#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__GNU__)
|
||||||
|
|
||||||
|
#if (defined (__linux__) || \
|
||||||
|
!defined (HAVE_LIBZFS) || !defined (HAVE_LIBNVPAIR))
|
||||||
|
|
||||||
static pid_t
|
static pid_t
|
||||||
exec_pipe (char **argv, int *fd)
|
exec_pipe (char **argv, int *fd)
|
||||||
{
|
{
|
||||||
|
@ -258,6 +261,8 @@ exec_pipe (char **argv, int *fd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
static char **
|
static char **
|
||||||
find_root_devices_from_poolname (char *poolname)
|
find_root_devices_from_poolname (char *poolname)
|
||||||
{
|
{
|
||||||
|
@ -269,7 +274,7 @@ find_root_devices_from_poolname (char *poolname)
|
||||||
zpool_handle_t *zpool;
|
zpool_handle_t *zpool;
|
||||||
libzfs_handle_t *libzfs;
|
libzfs_handle_t *libzfs;
|
||||||
nvlist_t *config, *vdev_tree;
|
nvlist_t *config, *vdev_tree;
|
||||||
nvlist_t **children, **path;
|
nvlist_t **children;
|
||||||
unsigned int nvlist_count;
|
unsigned int nvlist_count;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
char *device = 0;
|
char *device = 0;
|
||||||
|
|
Loading…
Reference in a new issue