commit:     26a7caea7e40a8bcda903705376cc9209dced9fa
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  4 10:16:08 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Nov  4 10:19:20 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26a7caea

app-emulation/dosemu: unbreak misaligned .sys files,  bug #631190

In bug #618366 I've added -no-pie LDFLAGS propagation to 16-bit targets
but did not notice dosemu has different varying base addresses for
different .com files (and I've overlooked 0-based .sys rules).

Specifying wrong base address caused incorrect jump offsets
into the final binary. That caused crash and hangup of cdrom.sys
driver.

This change restores original base addresses.

Reported-by: Tom
Reported-by: Robert Gill
Bug: https://bugs.gentoo.org/631190
Package-Manager: Portage-2.3.13, Repoman-2.3.4
RepoMan-Options: --force

 ...e20130107-r4.ebuild => dosemu-1.4.1_pre20130107-r5.ebuild} |  0
 .../dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch  | 11 +++++------
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r4.ebuild 
b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
similarity index 100%
rename from app-emulation/dosemu/dosemu-1.4.1_pre20130107-r4.ebuild
rename to app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild

diff --git 
a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch 
b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch
index 0e2393cc274..f8c05622571 100644
--- a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch
+++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch
@@ -7,10 +7,9 @@ diff --git a/Makefile.conf.in b/Makefile.conf.in
 index cd4b34d..cc29931 100644
 --- a/Makefile.conf.in
 +++ b/Makefile.conf.in
-@@ -55,2 +55,4 @@ ALL_LDFLAGS:=@DOSEMU_LDFLAGS@ ${LDFLAGS}
+@@ -55,2 +55,3 @@ ALL_LDFLAGS:=@DOSEMU_LDFLAGS@ ${LDFLAGS}
  DOSBIN_LDFLAGS:=@DOSBIN_LDFLAGS@
-+# flags to "link" 16-bit .com files
-+IA16_LDFLAGS:=-Wl,-Ttext,0x100,-e,_start16,--oformat,binary -nostdlib -s 
@IA16_LDFLAGS_EXTRA@
++IA16_LDFLAGS_EXTRA:=@IA16_LDFLAGS_EXTRA@
  LIBS:=@LIBS@
 diff --git a/configure.ac b/configure.ac
 index 0f06f57..a86208e 100644
@@ -27,12 +26,12 @@ index 3139b85..c5c4607 100644
 @@ -56,3 +56,3 @@ dosbin: $(COM1) $(COM2) $(SYS)
  $(D)/%.sys: %.o
 -      $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0,-e,_start16,--oformat,binary 
-nostdlib -s -o $@ $<
-+      $(LD) $(ALL_LDFLAGS) $(IA16_LDFLAGS) -o $@ $<
++      $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0,-e,_start16,--oformat,binary 
-nostdlib -s $(IA16_LDFLAGS_EXTRA) -o $@ $<
        chmod -x $@ 
 @@ -60,3 +60,3 @@ $(D)/%.sys: %.o
  $(D)/%.com: %.o
 -      $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,100,-e,_start16,--oformat,binary 
-nostdlib -s -o $@ $<
-+      $(LD) $(ALL_LDFLAGS) $(IA16_LDFLAGS) -o $@ $<
++      $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,100,-e,_start16,--oformat,binary 
-nostdlib -s $(IA16_LDFLAGS_EXTRA) -o $@ $<
        chmod -x $@
 diff --git a/src/plugin/commands/Makefile b/src/plugin/commands/Makefile
 index 48f49d5..d3a5667 100644
@@ -41,5 +40,5 @@ index 48f49d5..d3a5667 100644
 @@ -57,3 +57,3 @@ $(STUBFULL): $(D)/generic.com ./mkcomstub
  $(D)/%.com: %.o
 -      $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0x100,-e,_start16,--oformat,binary 
-nostdlib -s -o $@ $<
-+      $(LD) $(ALL_LDFLAGS) $(IA16_LDFLAGS) -o $@ $<
++      $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0x100,-e,_start16,--oformat,binary 
-nostdlib -s $(IA16_LDFLAGS_EXTRA) -o $@ $<
        chmod -x $@

Reply via email to