From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: grub-core/osdep/unix/hostdisk.c: remove support for ancient glibc
Date: Fri, 28 Nov 2014 21:18:05 +0200 [thread overview]
Message-ID: <5478CA6D.9020904@gmail.com> (raw)
In-Reply-To: <20141121200040.GA4858@euler>
[-- Attachment #1: Type: text/plain, Size: 2446 bytes --]
On 21.11.2014 22:00, Felix Janda wrote:
> Hello,
>
> the file grub-core/osdep/unix/hostdisk.c has special code for glibc<2.1,
> which gets also pulled in for other libcs (such as musl libc) and makes
> compilation fail for them because the code uses glibc internals. The
> easiest way to fix is just to remove the code as the below patch does.
>
Don't assume that nobody will try to compile with ancient glibc. If you
want to raise the supported version for glibc you need to add a
configure check for presence of long offsets to configure and fail it if
it's not available. It should also be documented in INSTALL.
> --Felix
>
> diff -ur a/grub-2.02~beta2/grub-core/osdep/unix/hostdisk.c b/grub-2.02~beta2/grub-core/osdep/unix/hostdisk.c
> --- a/grub-2.02~beta2/grub-core/osdep/unix/hostdisk.c
> +++ b/grub-2.02~beta2/grub-core/osdep/unix/hostdisk.c
> @@ -48,11 +48,6 @@
> #ifdef __linux__
> # include <sys/ioctl.h> /* ioctl */
> # include <sys/mount.h>
> -# if !defined(__GLIBC__) || \
> - ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
> -/* Maybe libc doesn't have large file support. */
> -# include <linux/unistd.h> /* _llseek */
> -# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */
> #endif /* __linux__ */
>
> grub_uint64_t
> @@ -79,24 +74,6 @@
> return st.st_size;
> }
>
> -#if defined(__linux__) && (!defined(__GLIBC__) || \
> - ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
> - /* Maybe libc doesn't have large file support. */
> -int
> -grub_util_fd_seek (grub_util_fd_t fd, grub_uint64_t off)
> -{
> - loff_t offset, result;
> - static int _llseek (uint filedes, ulong hi, ulong lo,
> - loff_t *res, uint wh);
> - _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
> - loff_t *, res, uint, wh);
> -
> - offset = (loff_t) off;
> - if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
> - return -1;
> - return GRUB_ERR_NONE;
> -}
> -#else
> int
> grub_util_fd_seek (grub_util_fd_t fd, grub_uint64_t off)
> {
> @@ -107,7 +84,6 @@
>
> return 0;
> }
> -#endif
>
>
> /* Read LEN bytes from FD in BUF. Return less than or equal to zero if an
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 213 bytes --]
next prev parent reply other threads:[~2014-11-28 20:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-21 20:00 grub-core/osdep/unix/hostdisk.c: remove support for ancient glibc Felix Janda
2014-11-22 8:59 ` Felix Janda
2014-11-27 14:34 ` Andrei Borzenkov
2014-11-27 22:27 ` Felix Janda
2014-11-28 19:18 ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
2014-12-04 22:21 ` Felix Janda
2014-12-05 11:52 ` Andrei Borzenkov
2014-12-05 17:50 ` Felix Janda
2014-12-07 16:24 ` Vladimir 'φ-coder/phcoder' Serbinenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5478CA6D.9020904@gmail.com \
--to=phcoder@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).