public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: jeffdbREMOVETHIS@goodnet.com (Mikey)
To: binutils@sourceware.cygnus.com
Subject: Incorrect dlltool changes
Date: Thu, 01 Jul 1999 00:00:00 -0000	[thread overview]
Message-ID: <374a4cb2.317132@mail.goodnet.com> (raw)

I don't know about any other platform, but the following changes
break creating the reloc section for cygwin1.dll on x86 w95

       if (d_list)
        {
          fprintf (f, "\t.section .rdata\n");
@@ -1827,6 +1938,8 @@
          int src;
          int dst = 0;
          int last = -1;
+         int totsize = 0;
+
          qsort (copy, num_entries, sizeof (long), sfunc);
          /* Delete duplcates */
          for (src = 0; src < num_entries; src++)
@@ -1840,18 +1953,31 @@
          on_page = 0;
          for (j = 0; j < num_entries; j++)
            {
+             totsize += 2;
              addr = copy[j];
              if ((addr & PAGE_MASK) != page_addr)
                {
+                 totsize += 8 + (on_page & 1)*2;
                  flush_page (f, need, page_addr, on_page);
                  on_page = 0;
                  page_addr = addr & PAGE_MASK;
                }
              need[on_page++] = addr;
            }
+
+         /* Pad the section to an even 32-byte boundary.  This will make
+            the BeOS loader much happier, and shouldn't matter for other
+            OSes. */
+         while ((totsize + 8 + (on_page & 1)*2) % 32 != 0)
+           {
+             /* 0x0000 is an absolute relocation that should be ignored.  */
+             need[on_page++] = 0x0000;
+             totsize += 2;
+           }
+
          flush_page (f, need, page_addr, on_page);

-/*       fprintf (f, "\t%s\t0,0\t%s End\n", ASM_LONG, ASM_C);*/
+         /* fprintf (f, "\t%s\t0,0\t%s End\n", ASM_LONG, ASM_C);*/
        }
     }

@@ -1863,7 +1989,7 @@
   sprintf (outfile, "%s -o %s %s", as_flags, exp_name, TMP_ASM);

/c/src/obj/ld/ld-new --base-file=cygwin.base -s --dll setjmp.o longjmp.o ../libiberty/random.o ../libiberty/strsignal.o regexp/regexp.o regexp/regerror.o regexp/regsub.o assert.o dcrt0.o debug.o delqueue.o dir.o dlfcn.o dll_init.o environ.o errno.o exceptions.o exec.o external.o fcntl.o fhandler.o fhandler_console.o fhandler_serial.o fhandler_termios.o fhandler_tty.o fhandler_windows.o fhandler_raw.o fhandler_floppy.o fhandler_tape.o fork.o glob.o grp.o heap.o hinfo.o init.o ioctl.o malloc.o mmap.o net.o ntea.o passwd.o path.o pinfo.o pipe.o registry.o resource.o scandir.o security.o select.o shared.o signal.o sigproc.o smallprint.o spawn.o strace.o strsep.o syscalls.o sysconf.o syslog.o termios.o times.o  tty.o uinfo.o uname.o wait.o window.o version.o -lkernel32.lib -luser32.lib -ladvapi32.lib -lnetapi32.lib ../newlib/libm.a ../newlib/libc.a c:/test-gcc/H-i586-cygwin32/lib/gcc-lib/i586-cygwin32/egcs-2.91.66/libgcc.a -e _dll_entry@12 --image-base=0x61000000
/c/src/obj/binutils/dlltool --as=/c/src/obj/gas/as-new --dllname cygwin1.dll --def cygwin.def --base-file cygwin.base --output-exp cygwin.exp
dc.s: Assembler messages:
dc.s:18937: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18938: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18939: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18940: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18941: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18942: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18943: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18944: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18945: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18946: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18947: Warning: Value 0xfffab000 truncated to 0xb000.
dc.s:18948: Warning: Value 0xfffab000 truncated to 0xb000.
/c/src/obj/ld/ld-new --base-file=cygwin.base cygwin.exp -s --dll setjmp.o longjmp.o ../libiberty/random.o ../libiberty/strsignal.o regexp/regexp.o regexp/regerror.o regexp/regsub.o assert.o dcrt0.o debug.o delqueue.o dir.o dlfcn.o dll_init.o environ.o errno.o exceptions.o exec.o external.o fcntl.o fhandler.o fhandler_console.o fhandler_serial.o fhandler_termios.o fhandler_tty.o fhandler_windows.o fhandler_raw.o fhandler_floppy.o fhandler_tape.o fork.o glob.o grp.o heap.o hinfo.o init.o ioctl.o malloc.o mmap.o net.o ntea.o passwd.o path.o pinfo.o pipe.o registry.o resource.o scandir.o security.o select.o shared.o signal.o sigproc.o smallprint.o spawn.o strace.o strsep.o syscalls.o sysconf.o syslog.o termios.o times.o  tty.o uinfo.o uname.o wait.o window.o version.o -lkernel32.lib -luser32.lib -ladvapi32.lib -lnetapi32.lib ../newlib/libm.a ../newlib/libc.a c:/test-gcc/H-i586-cygwin32/lib/gcc-lib/i586-cygwin32/egcs-2.91.66/libgcc.a -e _dll_entry@12 --image-base=0x61000000
/c/src/obj/binutils/dlltool --as=/c/src/obj/gas/as-new --dllname cygwin1.dll --def cygwin.def --base-file cygwin.base --output-exp cygwin.exp
dc.s: Assembler messages:
dc.s:23263: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23264: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23265: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23266: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23267: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23268: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23269: Warning: Value 0xfff8f000 truncated to 0xf000.
dc.s:23270: Warning: Value 0xfff8f000 truncated to 0xf000.
/c/src/obj/ld/ld-new cygwin.exp -o new-cygwin1.dll --dll setjmp.o longjmp.o ../libiberty/random.o ../libiberty/strsignal.o regexp/regexp.o regexp/regerror.o regexp/regsub.o assert.o dcrt0.o debug.o delqueue.o dir.o dlfcn.o dll_init.o environ.o errno.o exceptions.o exec.o external.o fcntl.o fhandler.o fhandler_console.o fhandler_serial.o fhandler_termios.o fhandler_tty.o fhandler_windows.o fhandler_raw.o fhandler_floppy.o fhandler_tape.o fork.o glob.o grp.o heap.o hinfo.o init.o ioctl.o malloc.o mmap.o net.o ntea.o passwd.o path.o pinfo.o pipe.o registry.o resource.o scandir.o security.o select.o shared.o signal.o sigproc.o smallprint.o spawn.o strace.o strsep.o syscalls.o sysconf.o syslog.o termios.o times.o  tty.o uinfo.o uname.o wait.o window.o version.o -lkernel32.lib -luser32.lib -ladvapi32.lib -lnetapi32.lib ../newlib/libm.a ../newlib/libc.a c:/test-gcc/H-i586-cygwin32/lib/gcc-lib/i586-cygwin32/egcs-2.91.66/libgcc.a -e _dll_entry@12 --image-base=0x61000000
make[1]: Entering directory `/c/src/obj/i586-cygwin32/winsup

Objdump --all-headers new-cygwin1.dll is truncated in the 
middle of the reloc section.
Reverting these changes gives correct output both in the
build and from objdump.

Maybe they should be made BeOS specific?

                 reply	other threads:[~1999-07-01  0:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=374a4cb2.317132@mail.goodnet.com \
    --to=jeffdbremovethis@goodnet.com \
    --cc=binutils@sourceware.cygnus.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 read-only IMAP folder(s) and NNTP newsgroup(s).