This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: DDD 3.3.8 recipe - was - RE: libtool created import libs brok en? was RE: DDD 3.3.8 (i686-pc-cygwin) gets `Segmentation fault


Since the required fix seemed to be a simple find and replace,
I did it myself: the new patch is at 
http://www.cs.utexas.edu/~subbuk/cygwin-ddd-patch.gz

So the new recipe is as follows:
1. cp -r ddd-3.3.8 ddd-3.3.8-orig
2. wget http://www.cs.utexas.edu/~subbuk/cygwin-ddd-patch.gz
   gunzip -c cygwin-ddd-patch.gz | patch -p0
3. cd ddd-3.3.8 && bash ./configure && make && make install

Thanks,
--subbu

On Fri, Dec 05, 2003 at 08:08:21PM -0600, S Iyer wrote:
> Harold, it is Richard's patch not mine. I was only pointing out
> that one step in the recipe should be removed - if you move
> the gcc/include into ddd/include, then patch gets confused
> on those files.
> 
> That said, the error is in non-cygwin case, which is why the
> whole compilation went through flawlessly for me!
> Richard, can you fix this appropriately?
> 
> Thanks,
> --subbu
> 
> On Fri, Dec 05, 2003 at 08:01:20PM -0500, Harold L Hunt II wrote:
> > Subbu,
> > 
> > The patch is no good.  It takes the following:
> > 
> > #ifdef __GNUG__
> > #pragma implementation "foo.h"
> > #endif
> > 
> > and turns it into:
> > 
> > #ifdef __GNUG__
> > #ifndef __CYGWIN__
> > #pragma implementation
> > #endif "foo.h"
> > #endif
> > 
> > Here is an example:
> > 
> >  #ifdef __GNUG__
> > +#ifndef __CYGWIN__
> >  #pragma implementation
> > -#pragma implementation "Map.h"
> > +#endif
> > +#ifndef __CYGWIN__
> > +#pragma implementation
> > +#endif "Map.h"
> >  #endif
> > 
> > 
> > The mistake was matching only "#pragma implementation (.*)" and 
> > replacing that with "#ifndef __CYGWIN__ #pragma implementation #endif 
> > (.*)" instead of replacing it with "#ifndef __CYGWIN__ #pragma 
> > implementation (.*) #endif".
> > 
> > Could you send in the original search and replace command (or string of 
> > commands) that you used to do this so that I can fix it and run the 
> > change again?
> > 
> > Harold
> > 
> > 
> > S Iyer wrote:
> > 
> > >Step no 2 (copying the gcc include files) is no longer necessary
> > >as it is subsumed by the diff. So all that needs done to get a
> > >working ddd is:
> > >
> > >1. cp -r ddd-3.3.8 ddd-3.3.8-orig
> > >2. wget http://bellsouthpwp.net/u/l/ulvester/ddddiffs.gz
> > >   gunzip -c ddddiffs.gz | patch -p0
> > >3. cd ddd-3.3.8 && bash ./configure && make && make install
> > >
> > >Thanks to all who got this fixed so quickly, esp to Richard.
> > >
> > >Will it be possible to get this into cygwin's setup.exe?
> > >
> > >Thanks
> > >--subbu
> > >
> > >On Fri, Dec 05, 2003 at 01:39:43PM -0500, Richard Campbell wrote:
> > >
> > >>Resend - got denied because of attachment size, so I've uploaded my diffs 
> > >>to
> > >>a web page.
> > >>
> > >>Ok, I think this is the quickest way to get a working (as far as I can 
> > >>tell,
> > >>and I 
> > >>didn't play with it all that much, although I did load up the cxxtest.exe,
> > >>set a breakpoint,
> > >>run through, etc.) DDD 3.3.8 on cygwin:
> > >>
> > >>1. Get the DDD 3.3.8 source and a gcc 3.3.x source.
> > >>2. Copy the gcc/include contents into ddd-3.3.8/include
> > >>3. Edit ddd-3.3.8/configure to remove the "old_archive_from_expsyms_cmds"
> > >>variable (patch
> > >>	below, which is just in the cygwin section of configure):
> > >>
> > >>bash-2.05b$ diff -u ddd-3.3.8-orig/configure ddd-3.3.8/configure
> > >>--- ddd-3.3.8-orig/configure    2003-10-22 15:29:40.000000000 -0400
> > >>+++ ddd-3.3.8/configure 2003-12-05 11:34:05.948423800 -0500
> > >>@@ -9492,7 +9492,8 @@
> > >>      else $CC -o impgen impgen.c ; fi)~
> > >>      $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
> > >>
> > >>-    old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname
> > >>--def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
> > >>+#    old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname
> > >>--def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
> > >>+    old_archive_from_expsyms_cmds=
> > >>
> > >>    # cygwin and mingw dlls have different entry points and sets of 
> > >>    symbols
> > >>    # to exclude.
> > >>
> > >>4. bash ./configure
> > >>5. Edit all of ddd/*.C ddd/*.h to remove or guard all "#pragma interface"
> > >>and 
> > >>	"#pragma implementation" lines.
> > >>6. make
> > >>7. make install
> > >>8. run as normal.
> > >>
> > >>The usual disclaimers apply.  I have included the output of:
> > >>
> > >>diff -u -r -N ddd-3.3.8-orig/ ddd-3.3.8
> > >>
> > >>Available at:
> > >>
> > >>http://bellsouthpwp.net/u/l/ulvester/ddddiffs.gz
> > >>
> > >>Feel free to play with it if the prospect of handediting 500 .C and .h 
> > >>files
> > >>doesn't thrill you.
> > >>
> > >>-Richard Campbell.
> > >
> > >
> > 
> 
> -- 

-- 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]