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

Harold L Hunt II huntharo@msu.edu
Sat Dec 6 01:01:00 GMT 2003


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.
> 
> 



More information about the Cygwin-xfree mailing list