gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Re: gcl-2.6.8pre on MAC OSX 10.2


From: Camm Maguire
Subject: [Gcl-devel] Re: gcl-2.6.8pre on MAC OSX 10.2
Date: 24 Oct 2006 11:55:47 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!

"Bill Page" <address@hidden> writes:

> On October 23, 2006 3:53 PM Camm Maguire wrote:
> > > ... 
> > > But I see the this symbol *is* known to the gcl image.
> > > 
> > > ppc-osx3:~/osx/new/gcl-2.6.8pre $ nm unixport/saved_gcl | grep srget
> > >          U ___srget
> > > 
> > > What is wrong?
> > > 
> > 
> > Here is says that saved_gcl *uses* the symbol, but does not provide
> > it.  We need T ___srget.
> >
> 
> Aha. No "__srget" symbol defined in the gcl image? Isn't it strange?
>  

Yes, in light of this and previous messages.  We need a gdb session on
raw_pre_gcl.  Please let me know if you would like me to walk you
through one, or whether you can provide me with remote ssh access to
the box or equivalent.

> > Was our patch to o/makefile designed to remove ___srget from plt.h?
> > If so, this is the culprit.  What was the reason if this is the case?
> 
> No, only saveFP and restFP are removed because the linker complains
> that the symbols are not used in the context of a function. It is
> not clear to me why this is not also a problem on other platforms
> nor exactly what these symbols are for. Although this helps:
> 
> http://www.astro.gla.ac.uk/users/norman/note/2004/restFP
> 
> "In particular, the Apple GCC produces object code which includes
> references to the restFP and saveFP symbols, which refer to assembler
> routines which manipulate the floating-point state of the processor."
> 
> ...
> 
> "The restFP and saveFP functions are defined in Apple's libgcc, and
> so the fix is simply to include this library in your link line. The
> best way of doing this is to include the option
>   -lcc_dynamic
> in your link line."
> 
> Maybe we need this?
> 

If we can generate a Undefined symbol error on these symbols when
loading .o files, yes.  I'm not sure at the moment why these symbols
are not output into our compiled .o, but we'd certainly know about it
by now.  I guess if it ain't broke....

> > If not, we need to add code to plttest.c to get these symbols into
> > plt.h.  If this makes any sense to you and you can tell me which
> > is the case, we can proceed from here.
> >
> 
> I have a vague understanding of the purpose of plttest.c and plt.h
> from the comments in the source about what this is supposed to do.
> 
> Here is the contents of plt.h:
> 
> ppc-osx3:~/osx/new/gcl-2.6.8pre $ cat o/plt.h
> MY_PLT(__srget),
> MY_PLT(__swbuf),
> MY_PLT(acos),
> MY_PLT(acosh),
> MY_PLT(asin),
> MY_PLT(asinh),
> MY_PLT(atan),
> MY_PLT(atanh),
> MY_PLT(cos),
> MY_PLT(cosh),
> MY_PLT(exp),
> MY_PLT(log),
> MY_PLT(setjmp),
> MY_PLT(sin),
> MY_PLT(sinh),
> MY_PLT(tan),
> MY_PLT(tanh)
> 
> --------
> 
> You will note that "__srget" (two underscores) is present.
>  
> > The idea is that raw_gcl needs its own symbol for every symol that
> > can be written by the compiler/gcc into an object file to be loaded.
> > If symbols are in external libraries, e.g. cos() in libm, GCL compiles
> > in its own reference by taking the address in C
> > 
> > void *ref=cos;
> > 
> > This forces ldd to make a plt table, en effective trampoline, which
> > will be properly relocated at runtime by ld.so.  Jumping to this
> > trampoline is sufficient to get us to where we need to go.  
> >
> 
> Thanks for the explanation.
> 
> Note that __srget is not defined in an external library but rather
> in the /usr/include/stdio.h:
> 
> ppc-osx3:~/osx/new/gcl-2.6.8pre $ grep srget /usr/include/stdio.h
> int     __srget __P((FILE *));
> #define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
> ppc-osx3:~/osx/new/gcl-2.6.8pre $
> 
> ------
> 
> Is that significant? Does that affect how gcl should look for this
> symbol?

As you observed earlier, I believe it is defined in the libc 'dylib',
which is the mac version of a shared library.  The header reference
above is a prototype.

Come to think of it, there may be a problem like the following:

On Linux systems, libc symbols are postpended with a @@ and version
number.   Here is our code to deal with this (sfasli.c): (my comments
in ****)

  for (u=0;u<v;u++) {
    char *c=NULL;
    struct bfd_link_hash_entry *h;

    if (!*q[u]->name)
      continue;

    if (strncmp(q[u]->section->name,"*UND*",5) && !(q[u]->flags & BSF_WEAK))
      continue;

*** the above might skip ___srget ***

    if ((c=(char *)strstr(q[u]->name,"@@"))) {
      *c=0;
      if 
(!(h=bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_TRUE,MY_BFD_TRUE,MY_BFD_TRUE)))
        FEerror("Cannot make new hash entry",0);
      h->type=bfd_link_hash_new;
    } else if 
      
(!(h=bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_FALSE,MY_BFD_FALSE,MY_BFD_TRUE))
 &&
       
!(h=bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_TRUE,MY_BFD_TRUE,MY_BFD_TRUE)))
        FEerror("Cannot make new hash entry",0);

*** There might be some other mangling than the @ for ___srget ***

    if (h->type!=bfd_link_hash_defined) {
      if (!q[u]->section)
        FEerror("Symbol ~S is missing 
section",1,make_simple_string(q[u]->name));
      if (!my_plt(q[u]->name,&pa)) {
/*       printf("my_plt %s %p\n",q[u]->name,(void *)pa);  */
        if (q[u]->value && q[u]->value!=pa)
          FEerror("plt address mismatch", 0);
        else
          q[u]->value=pa;
      }
      if (q[u]->value) {
        h->type=bfd_link_hash_defined;
        h->u.def.value=q[u]->value+q[u]->section->vma;
        h->u.def.section=q[u]->section;
      }
    }

    if (c) {
      *c='@';
      c=NULL;
    }
  }

This might be instructive with srget in place of cos:

objdump -x /usr/lib/gcl-2.6.7/unixport/saved_gcl |grep cos
0812f590 l     F .text  0000015b              number_cos
00000000       F *UND*  00000026              cos@@GLIBC_2.0
0804fb40       F *UND*  00000074              acosh@@GLIBC_2.0
08050440       F *UND*  00000081              cosh@@GLIBC_2.0
0812f6f0 g     F .text  00000047              Lcos
00000000       F *UND*  00000026              cosf@@GLIBC_2.0
08051200       F *UND*  00000075              acos@@GLIBC_2.0






>  
> > We also have an additional mechanism to parse the raw_map file to
> > look at the plt table explicitly if present.  This is not very
> > portable, but the results are in si::*plt-table*.
> > 
> 
> I get:
> 
> ppc-osx3:~/osx/new/gcl-2.6.8pre $ gcl
> GCL (GNU Common Lisp)  2.6.8 CLtL1    Oct 18 2006 15:24:28
> Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
> Binary License:  GPL due to GPL'ed components: (BFD UNEXEC)
> Modifications of this banner must retain notice of a compatible license
> Dedicated to the memory of W. Schelter
> 
> Use (help) to get some basic information on how to use GCL.
> Temporary directory for compiler files set to /tmp/
> 
> >si::*plt-table*
> 
> NIL
> 
> >
> 
> ----------
> 
> >...
> >
> > > > > Writing segment __DATA           at   0x5f8000 -   0x5f8000 
> > > > (sz:          0)
> > > > > WGCL (GNU Common Lisp)  April 1994  131072 pages
> > > > > 
> > > >
> > > > Does this stop here?  Or do you see "Initializing ...." as in
> > > > your compiler::link output below?
> > > >
> > > 
> > > It stops there.
> > 
> > OK, this is definitely strange.  Could you please 
> >
> > (trace system open delete-file)
> >
> > before the compiler::link and send me the output.
> 
> Did you mean before the save-system command?
> 
> First here is the output from compiler::link
> 
> -------
> 
> ppc-osx3:~/osx/new/gcl-2.6.8pre $ echo '(trace system open delete-file)
> (compiler::link nil "bar") (quit)' | gcl | more
> 
> GCL (GNU Common Lisp)  2.6.8 CLtL1    Oct 18 2006 15:24:28
> Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
> Binary License:  GPL due to GPL'ed components: (BFD UNEXEC)
> Modifications of this banner must retain notice of a compatible license
> Dedicated to the memory of W. Schelter
> 
> Use (help) to get some basic information on how to use GCL.
> Temporary directory for compiler files set to /tmp/
> 
> >
> Warning: SYSTEM is being redefined.
> Warning: OPEN is being redefined.
> Warning: DELETE-FILE is being redefined.
> (SYSTEM OPEN DELETE-FILE)
> 
> >
>   1> (OPEN #p"./user-init.c" :DIRECTION :OUTPUT)
>   <1 (OPEN #<output stream "./user-init.c">)
>   1> (SYSTEM "gcc -no-cpp-precomp -c -Wall -DVOL=volatile -fsigned-char
> -pipe -I
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../h  -O3
> -fomit-frame-poin
> ter -c \"./user-init.c\" -o \"./user-init.o\" -w")
>   <1 (SYSTEM 0 0)
>   1> (DELETE-FILE #p"./user-init.c")
>   <1 (DELETE-FILE T)
>   1> (OPEN "./raw_bar_map" :DIRECTION :OUTPUT)
>   <1 (OPEN #<output stream "./raw_bar_map">)
>   1> (SYSTEM "gcc -no-cpp-precomp -o  ./raw_bar ./user-init.o
> -L/home/users/b/b
> i/billpage/osx/lib/gcl-2.6.8/unixport/     -lgcl -lm  -lc -lgclp  ")
>   <1 (SYSTEM 0 0)
>   1> (DELETE-FILE #p"./user-init.o")
>   <1 (DELETE-FILE T)
>   1> (OPEN #p"init_bar.lsp" :DIRECTION :OUTPUT)
>   <1 (OPEN #<output stream "init_bar.lsp">)
>   1> (OPEN
> "/home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/init_gcl.lsp")
>   <1 (OPEN #<input stream
> "/home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/
> init_gcl.lsp">)
>   1> (SYSTEM "./raw_bar
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/ <
> init_bar.lsp")
> GCL (GNU Common Lisp)  April 1994  131072 pages
> Building symbol table for
> /private/automount/home/users/b/bi/billpage/osx/new/gc
> l-2.6.8pre/raw_bar.tmp ..
> loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../lsp/gcl_export.l
> sp
> Initializing gcl_defmacro.o
> Initializing gcl_evalmacros.o
> Initializing gcl_top.o
> Initializing gcl_module.o
> loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../lsp/gcl_autoload
> .lsp
> 
> >
> NIL
> 
> >
> #<"COMPILER" package>
> 
> >
> #<"SLOOP" package>
> 
> >
> #<"SERROR" package>
> 
> >
> #<"ANSI-LOOP" package>
> 
> >
> #<"DEFPACKAGE" package>
> 
> >
> #<"TK" package>
> 
> >
> #<"SYSTEM" package>
> 
> SYSTEM>
> *COMMAND-ARGS*
> 
> SYSTEM>Initializing gcl_predlib.o
> Initializing gcl_setf.o
> Initializing gcl_arraylib.o
> Initializing gcl_assert.o
> Initializing gcl_defstruct.o
> Initializing gcl_describe.o
> Initializing gcl_iolib.o
> Initializing gcl_listlib.o
> Initializing gcl_mislib.o
> Initializing gcl_numlib.o
> Initializing gcl_packlib.o
> Initializing gcl_seq.o
> Initializing gcl_seqlib.o
> Initializing gcl_trace.o
> Initializing gcl_sloop.o
> Initializing gcl_serror.o
> Initializing gcl_destructuring_bind.o
> Initializing gcl_loop.o
> Initializing gcl_defpackage.o
> Initializing gcl_make_defpackage.o
> Initializing gcl_cmpinline.o
> Initializing gcl_cmputil.o
> Initializing gcl_debug.o
> Initializing gcl_info.o
> Initializing gcl_cmptype.o
> Initializing gcl_cmpbind.o
> Initializing gcl_cmpblock.o
> Initializing gcl_cmpcall.o
> Initializing gcl_cmpcatch.o
> Initializing gcl_cmpenv.o
> Initializing gcl_cmpeval.o
> Initializing gcl_cmpflet.o
> Initializing gcl_cmpfun.o
> Initializing gcl_cmpif.o
> Initializing gcl_cmplabel.o
> Initializing gcl_cmplam.o
> Initializing gcl_cmplet.o
> Initializing gcl_cmploc.o
> Initializing gcl_cmpmap.o
> Initializing gcl_cmpmulti.o
> Initializing gcl_cmpspecial.o
> Initializing gcl_cmptag.o
> Initializing gcl_cmptop.o
> Initializing gcl_cmpvar.o
> Initializing gcl_cmpvs.o
> Initializing gcl_cmpwt.o
> 
> Loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../lsp/sys-proclaim
> .lisp
> Finished loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../lsp/sys
> -proclaim.lisp
> Loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../cmpnew/sys-procl
> aim.lisp
> Finished loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../cmpnew/
> sys-proclaim.lisp
> Loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../gcl-tk/tk-packag
> e.lsp
> Finished loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../gcl-tk/
> tk-package.lsp
> Loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../cmpnew/gcl_cmpma
> in.lsp
> Warning: COMPILE-FILE is being redefined.
> Warning: COMPILE is being redefined.
> Warning: DISASSEMBLE is being redefined.
> Finished loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../cmpnew/
> gcl_cmpmain.lsp
> Loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../lsp/gcl_auto_new
> .lsp
> Finished loading
> /home/users/b/bi/billpage/osx/lib/gcl-2.6.8/unixport/../lsp/gcl
> _auto_new.lsp
> 
> T
> 
> >DBEGIN:          0x1c7000
> mach_mapstart:   0x5f5000
> heap_end:        0xb09000
> core_end:        0xb0a000
> mach_brkpt:     0x57df000
> mach_maplimit: 0x201c7000
> --- List of All Regions ---
>    address       size prot maxp zone_name
>          0     0x1000 none none (no zone)
>     0x1000   0x1c6000 r x  rwx  (no zone)
>   0x1c7000   0x42e000 rw   rwx  (no zone)
>   0x5f5000 0x1fbd2000 rwx  rwx  (no zone)
> --- List of Regions to be Dumped ---
>    address       size prot maxp zone_name
>          0     0x1000 none none (no zone)
>     0x1000   0x1c6000 r x  rwx  (no zone)
>   0x1c7000   0x42e000 rw   rwx  (no zone)
>   0x5f5000 0x1fbd2000 rwx  rwx  (no zone)
> --- Header Information ---
> Magic      = 0xfeedface
> CPUType    = 18
> CPUSubType = 0
> FileType   = 0x2
> NCmds      = 11
> SizeOfCmds = 1744
> Flags      = 0x00000085
> Highest address of load commands in input file:   0x2032c000
> Lowest offset of all sections in __TEXT segment:     0x1658
> --- List of Load Commands in Input File ---
> no cmd                 cmdsize name                address       size
>  0 LC_SEGMENT             0x38 __PAGEZERO                0     0x1000
>  1 LC_SEGMENT            0x258 __TEXT               0x1000   0x1c6000
>                                __text               0x2658   0x1ab044
>                                __picsymbol_stub   0x1ad69c     0x18e4
>                                __symbol_stub      0x1aef80          0
>                                __cstring          0x1aef80    0x15f5c
>                                __literal4         0x1c4edc       0x18
>                                __literal8         0x1c4ef8      0x108
>                                __const            0x1c5000     0x1f9c
>                                __eh_frame         0x1c6f9c       0x60
>  2 LC_SEGMENT            0x214 __DATA             0x1c7000   0x42e000
>                                __data             0x1c7000     0xaec4
>                                __la_symbol_ptr    0x1d1ec4      0x2c4
>                                __nl_symbol_ptr    0x1d2188      0x9c8
>                                __dyld             0x1d2b50       0x1c
>                                __const            0x1d2b6c     0x2748
>                                __bss              0x1d52b8     0x8f28
>                                __common           0x1de1e0   0x416d58
>  3 LC_SEGMENT             0x7c __DATA             0x5f5000 0x1fbd2000
>                                __data             0x5f5000          0
>  4 LC_SEGMENT             0x38 __LINKEDIT       0x201c7000   0x165000
>  5 LC_LOAD_DYLINKER       0x1c
>  6 LC_LOAD_DYLIB          0x34
>  7 LC_SYMTAB              0x18
>  8 LC_DYSYMTAB            0x50
>  9 LC_TWOLEVEL_HINTS      0x10
> 10 LC_UNIXTHREAD          0xb0
> --- Load Commands written to Output File ---
> Writing segment __PAGEZERO       at          0 -          0 (sz:          0)
> Writing segment __TEXT           at          0 -   0x1c6000 (sz:   0x1c6000)
> Writing segment __DATA           at   0x1c6000 -   0x5f4000 (sz:   0x42e000)
>         section __data           at   0x1c6000 -   0x1d0ec4 (sz:     0xaec4)
>         section __la_symbol_ptr  at   0x1d0ec4 -   0x1d1188 (sz:      0x2c4)
>         section __nl_symbol_ptr  at   0x1d1188 -   0x1d1b50 (sz:      0x9c8)
>         section __dyld           at   0x1d1b50 -   0x1d1b6c (sz:       0x1c)
>         section __const          at   0x1d1b6c -   0x1d42b4 (sz:     0x2748)
>         section __bss            at   0x1d42b8 -   0x1dd1e0 (sz:     0x8f28)
>         section __common         at   0x1dd1e0 -   0x5f3f38 (sz:   0x416d58)
> Writing segment __DATA           at   0x5f4000 -   0xb09000 (sz:   0x515000)
> Writing segment __LINKEDIT       at   0xb09000 -   0xc6d1d4 (sz:   0x1641d4)
> Writing LC_LOAD_DYLINKER  command
> Writing LC_LOAD_DYLIB     command
> Writing LC_SYMTAB         command
> Fixed up 0/17 external relocation entries in data segment.
> Writing LC_DYSYMTAB       command
> Writing LC_TWOLEVEL_HINTS command
> Writing LC_UNIXTHREAD     command
> 3948 unused bytes follow Mach-O header
>   <1 (SYSTEM 0 0)
>   1> (DELETE-FILE #p"./raw_bar")
>   <1 (DELETE-FILE T)
>   1> (DELETE-FILE #p"init_bar.lsp")
>   <1 (DELETE-FILE T)
> "bar"
> 
> >
> 
> ---------
> 
> Maybe the anomally that you were worried about is not displayed
> above? I am not sure what you are looking for.
> 

This looks fine.  The Writing segment output occurs once, after the
"Initializing ...".  Does the output differ if you do not trace?  Your
previous email showed a duplication of the Writing segment and no
Initializing, AFAICR.


> Here is the same output from save-system:
> 
> ---------
> 
> ppc-osx3:~/osx/new/gcl-2.6.8pre $ echo '(trace system open delete-file)
> (si::save-system "foo") (quit)' | gcl | more
> 
> GCL (GNU Common Lisp)  2.6.8 CLtL1    Oct 18 2006 15:24:28
> Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
> Binary License:  GPL due to GPL'ed components: (BFD UNEXEC)
> Modifications of this banner must retain notice of a compatible license
> Dedicated to the memory of W. Schelter
> 
> Use (help) to get some basic information on how to use GCL.
> Temporary directory for compiler files set to /tmp/
> 
> >
> Warning: SYSTEM is being redefined.
> Warning: OPEN is being redefined.
> Warning: DELETE-FILE is being redefined.
> (SYSTEM OPEN DELETE-FILE)
> 
> >DBEGIN:          0x1c7000
> mach_mapstart:   0x5f5000
> heap_end:        0xb0c000
> core_end:        0xb0d000
> mach_brkpt:     0xe737000
> mach_maplimit: 0x201c7000
> --- List of All Regions ---
>    address       size prot maxp zone_name
>          0     0x1000 none none (no zone)
>     0x1000   0x1c6000 r x  rwx  (no zone)
>   0x1c7000   0x42e000 rw   rwx  (no zone)
>   0x5f5000   0x517000 rwx  rwx  (no zone)
>   0xb0c000 0x1f6bb000 rwx  rwx  (no zone)
> --- List of Regions to be Dumped ---
>    address       size prot maxp zone_name
>          0     0x1000 none none (no zone)
>     0x1000   0x1c6000 r x  rwx  (no zone)
>   0x1c7000   0x42e000 rw   rwx  (no zone)
>   0x5f5000 0x1fbd2000 rwx  rwx  (no zone)
> --- Header Information ---
> Magic      = 0xfeedface
> CPUType    = 18
> CPUSubType = 0
> FileType   = 0x2
> NCmds      = 11
> SizeOfCmds = 1744
> Flags      = 0x00000085
> Highest address of load commands in input file:   0x5fad0000
> Lowest offset of all sections in __TEXT segment:      0x6f8
> --- List of Load Commands in Input File ---
> no cmd                 cmdsize name                address       size
>  0 LC_SEGMENT             0x38 __PAGEZERO                0     0x1000
>  1 LC_SEGMENT            0x258 __TEXT               0x1000   0x1c6000
>                                __text               0x16f8   0x1aafc8
>                                __picsymbol_stub   0x1ac6c0     0x18e4
>                                __symbol_stub      0x1adfa4          0
>                                __cstring          0x1adfa4    0x15f5c
>                                __literal4         0x1c3f00       0x18
>                                __literal8         0x1c3f18      0x108
>                                __const            0x1c4020     0x1f9c
>                                __eh_frame         0x1c5fbc       0x60
>  2 LC_SEGMENT            0x214 __DATA             0x1c7000   0x42e000
>                                __data             0x1c7000     0xaec4
>                                __la_symbol_ptr    0x1d1ec4      0x2c4
>                                __nl_symbol_ptr    0x1d2188      0x9c8
>                                __dyld             0x1d2b50       0x1c
>                                __const            0x1d2b6c     0x2748
>                                __bss              0x1d52b8     0x8f28
>                                __common           0x1de1e0   0x416d68
>  3 LC_SEGMENT             0x7c __DATA             0x5f5000 0x1fbd2000
>                                __data             0x5f5000   0x517000
>  4 LC_SEGMENT             0x38 __LINKEDIT       0x5f96b000   0x165000
>  5 LC_LOAD_DYLINKER       0x1c
>  6 LC_LOAD_DYLIB          0x34
>  7 LC_SYMTAB              0x18
>  8 LC_DYSYMTAB            0x50
>  9 LC_TWOLEVEL_HINTS      0x10
> 10 LC_UNIXTHREAD          0xb0
> --- Load Commands written to Output File ---
> Writing segment __PAGEZERO       at          0 -          0 (sz:          0)
> Writing segment __TEXT           at          0 -   0x1c6000 (sz:   0x1c6000)
> Writing segment __DATA           at   0x1c6000 -   0x5f4000 (sz:   0x42e000)
>         section __data           at   0x1c6000 -   0x1d0ec4 (sz:     0xaec4)
>         section __la_symbol_ptr  at   0x1d0ec4 -   0x1d1188 (sz:      0x2c4)
>         section __nl_symbol_ptr  at   0x1d1188 -   0x1d1b50 (sz:      0x9c8)
>         section __dyld           at   0x1d1b50 -   0x1d1b6c (sz:       0x1c)
>         section __const          at   0x1d1b6c -   0x1d42b4 (sz:     0x2748)
>         section __bss            at   0x1d42b8 -   0x1dd1e0 (sz:     0x8f28)
>         section __common         at   0x1dd1e0 -   0x5f3f48 (sz:   0x416d68)
> Writing segment __DATA           at   0x5f4000 -   0xb0c000 (sz:   0x518000)
> Writing segment __LINKEDIT       at  0x1538000 -  0x169c1c0 (sz:   0x1641c0)
> Writing LC_LOAD_DYLINKER  command
> Writing LC_LOAD_DYLIB     command
> Writing LC_SYMTAB         command
> Fixed up 0/17 external relocation entries in data segment.
> Writing LC_DYSYMTAB       command
> Writing LC_TWOLEVEL_HINTS command
> Writing LC_UNIXTHREAD     command
> 12 unused bytes follow Mach-O header
> 
> --------
> 
> Note: no initializing in the above output from save-system.
> 
> > ...

This too is fine.  And I guess the sizes are the same.

OK, at least I can reproduce this on my mac -- the link output is
garbled without the trace, and I see the size difference.  Will
investigate and report more.

Take care,

> 
> Regards,
> Bill Page.
> 
> 
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]