grub-devel.gnu.org archive mirror
 help / color / mirror / Atom feed
From: Andrei Borzenkov <arvidjaar@gmail.com>
To: Jiri B <jirib@devio.us>
Cc: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>,
	The development of GNU GRUB <grub-devel@gnu.org>,
	bug-grub@gnu.org
Subject: Re: [openbsd] 2.02-beta3: build fails - getroot.c:(.text+0x2b): undefined reference to `getrawpartition'
Date: Fri, 18 Mar 2016 19:53:13 +0300	[thread overview]
Message-ID: <56EC3279.2020909@gmail.com> (raw)
In-Reply-To: <20160318130142.GE32407@wolfman.devio.us>

[-- Attachment #1: Type: text/plain, Size: 1498 bytes --]

18.03.2016 16:01, Jiri B пишет:
> On Fri, Mar 18, 2016 at 06:26:47AM +0300, Andrei Borzenkov wrote:
>>> [...]
>>>   CFLAGS=-ftrampolines -fno-stack-protector -fno-pie -nopie
>>>
>>> So I gave it a try and it seems better (?)
>>>
>>> $ ls -l /home/jirib/openbsd/pobj/grub-2.02-beta3/fake-amd64/usr/local/lib/grub/i386-pc/lzma_decompress.im*
>>> -rwxr-xr-x  1 jirib  wheel  3068 Mar 17 21:45 /home/jirib/openbsd/pobj/grub-2.02-beta3/fake-amd64/usr/local/lib/grub/i386-pc/lzma_decompress.image*
>>> -rw-r--r--  1 jirib  wheel  2832 Mar 17 21:45 /home/jirib/openbsd/pobj/grub-2.02-beta3/fake-amd64/usr/local/lib/grub/i386-pc/lzma_decompress.img
>>>
>>> $ objdump -f /home/jirib/openbsd/pobj/grub-2.02-beta3/fake-amd64/usr/local/lib/grub/i386-pc/lzma_decompress.image
>>>
>>> /home/jirib/openbsd/pobj/grub-2.02-beta3/fake-amd64/usr/local/lib/grub/i386-pc/lzma_decompress.image:     file format elf32-i386
>>> architecture: i386, flags 0x00000002:
>>> EXEC_P
>>> start address 0x00008200
>>>
>>> It is OK?
>>>
>>
>> It certainly looks better than before. Does it actually work?
>>
>> We aready use -fno-PIE, looks like we need to explicitly check for
>> -fno-pie as well.
> 
> I just booted OpenBSD from "native OpenBSD" grub2:
> 

Good. Please test attached patch.

@Vladimir: I was unsure whether to add explicit -fpie test, but at the
end I do not see what it buys us. Both options have been introduced at
the same time and we want neither enabled. Current test covers both.

Is it OK to commit?

[-- Attachment #2: fno-pie.patch --]
[-- Type: text/x-patch, Size: 1273 bytes --]

From: Andrei Borzenkov <arvidjaar@gmail.com>
Subject: [PATCH] configure: set -fno-pie together with -fno-PIE

OpenBSD 5.9 apparently defaults to -fpie. We use -fno-PIE when appropriate
already, but that is not enough - it does not turn off -fpie.

Actually check for -fPIE is not precise enough. __PIE__ is set for both
-fpie and -fPIE but with different values. As far as I can tell, both
options were introduced at the same time, so both should always be supported.

This fixes compilation on OpenBSD 5.9 which otherwise created insanely big
lzma_decompress.img.

Reported, suggested and tested by: Jiri B <jirib@devio.us>

---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index a85b134..57e1713 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1185,9 +1185,9 @@ CFLAGS="$TARGET_CFLAGS"
 # Position independent executable.
 grub_CHECK_PIE
 [# Need that, because some distributions ship compilers that include
-# `-fPIE' in the default specs.
+# `-fPIE' or '-fpie' in the default specs.
 if [ x"$pie_possible" = xyes ]; then
-  TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
+  TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE -fno-pie"
 fi]
 
 CFLAGS="$TARGET_CFLAGS"
-- 
tg: (76eac44..) u/fno-pie (depends on: master)

  reply	other threads:[~2016-03-18 16:53 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20160312165742.GR17281@wolfman.devio.us>
2016-03-12 18:29 ` [openbsd] 2.02-beta3: build fails - getroot.c:(.text+0x2b): undefined reference to `getrawpartition' Andrei Borzenkov
2016-03-12 19:54   ` Jiri B
2016-03-13  5:41     ` Andrei Borzenkov
2016-03-14 18:19       ` Jiri B
2016-03-14 18:46         ` Andrei Borzenkov
2016-03-17 10:12           ` Jiri B
2016-03-17 15:54             ` Andrei Borzenkov
2016-03-17 16:04               ` Vladimir 'phcoder' Serbinenko
2016-03-17 16:07                 ` Andrei Borzenkov
2016-03-17 20:56                   ` Jiri B
2016-03-18  3:26                     ` Andrei Borzenkov
2016-03-18 13:01                       ` Jiri B
2016-03-18 16:53                         ` Andrei Borzenkov [this message]
2016-03-18 19:48                           ` Vladimir 'phcoder' Serbinenko
2016-03-22 10:31                           ` Jiri B
2016-03-22 17:48                             ` Andrei Borzenkov
2016-03-24  3:55         ` Andrei Borzenkov

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=56EC3279.2020909@gmail.com \
    --to=arvidjaar@gmail.com \
    --cc=bug-grub@gnu.org \
    --cc=grub-devel@gnu.org \
    --cc=jirib@devio.us \
    --cc=phcoder@gmail.com \
    /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).