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 broken? was RE: DDD 3.3.8 (i686-pc-cygwin) gets `Segmentation fault


No need. I fixed my local version by hand.

Harold

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]