Re: Building in mingw (3.0.2)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Building in mingw (3.0.2)

Cesar Rabak-3
>  Message: 8

>  Date: Sun, 13 Apr 2008 17:32:11 +0200
>  From: Paolo Bonzini <[hidden email]>
>  Subject: Re: [Help-smalltalk] Building in mingw
>  To: Cesar Rabak <[hidden email]>
>  Cc: [hidden email]
>  Message-ID: <[hidden email]>
>  Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
>  Cesar Rabak wrote:
>  > I downloaded the sources for version 3.0.2 and I get errors during the
>  > build process which in the version 2.3.6 I didn't get.
>  >
>  > Is there any special requirements on these new versions (from 2.95
>  > onwards) for building in mingw (that configure does not catch, that
>  > is)?
>
>  No, but unfortunately bitrot happens fast for mingw, faster than you can
>  say the word (I don't have access to Windows machine to keep the port up
>  to date).  Can you send a build log?
Attached the compile log (obtained using: make | tee -a compile.log)
and the config.log which may be useful for finding any specifics.

My environment is Windows XP SP2, mingw + MSYS installation.

These results are on pristine sources ungzipped and untarred from the
source package. If I peek and poke some items (like copying
liggst-7.dll from libgst/.libs to .libs) build process advances a
little more.

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

compile_log.zip (45K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Re: Building in mingw (3.0.2)

Paolo Bonzini-2

>>  No, but unfortunately bitrot happens fast for mingw, faster than you can
>>  say the word (I don't have access to Windows machine to keep the port up
>>  to date).  Can you send a build log?
>
> Attached the compile log (obtained using: make | tee -a compile.log)
> and the config.log which may be useful for finding any specifics.

Thanks, can you add a

   printf ("SRC> %s\nDST> %s\n", old_path, new_path);

to lib-src/symlink.c and send again the end of the compile log (just the
final 30-40 lines will do)?

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Re: Building in mingw (3.0.2)

Cesar Rabak-3
In reply to this post by Cesar Rabak-3
>  Date: Mon, 14 Apr 2008 07:14:25 +0200
>  From: Paolo Bonzini <[hidden email]>
>  Subject: Re: [Help-smalltalk] Re: Building in mingw (3.0.2)
>  To: Cesar Rabak <[hidden email]>
>  Cc: [hidden email]
>  Message-ID: <[hidden email]>
>  Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
>
>  >>  No, but unfortunately bitrot happens fast for mingw, faster than you can
>  >>  say the word (I don't have access to Windows machine to keep the port up
>  >>  to date).  Can you send a build log?
>  >
>  > Attached the compile log (obtained using: make | tee -a compile.log)
>  > and the config.log which may be useful for finding any specifics.
>
>  Thanks, can you add a
>
>    printf ("SRC> %s\nDST> %s\n", old_path, new_path);
>
>  to lib-src/symlink.c and send again the end of the compile log (just the
>  final 30-40 lines will do)?
>
Here it goes Paolo:

creating gst.exe
.libs/lt-gst.c: In function `main':
.libs/lt-gst.c:113: warning: passing arg 2 of `execv' from
incompatible pointer type
/bin/sh ./libtool --tag=CC --mode=link gcc  -g -O2 -Wall
-fstrict-aliasing -fno-gcse -Wno-strict-aliasing -Wno-switch
-Wno-format -Wpointer-arith -Wwrite-strings    -o gst-tool.exe
-export-dynamic gst-tool.o libgst/libgst.la lib-src/library.la
-lws2_32 -lm
gcc -g -O2 -Wall -fstrict-aliasing -fno-gcse -Wno-strict-aliasing
-Wno-switch -Wno-format -Wpointer-arith -Wwrite-strings -o
.libs/gst-tool.exe gst-tool.o -Wl,--export-dynamic
libgst/.libs/libgst.dll.a lib-src/.libs/library.a -lws2_32
-Wl,--rpath -Wl,/mingw//lib
creating gst-tool.exe
.libs/lt-gst-tool.c: In function `main':
.libs/lt-gst-tool.c:113: warning: passing arg 2 of `execv' from
incompatible pointer type
./gst --no-user-files
--kernel-dir="/e/Programacao/Linguagens/Smalltalk/GNU/smalltalk-3.0.2/kernel"
--image="/e/Programacao/Linguagens/Smalltalk/GNU/smalltalk-3.0.2/gst.im"
-iQ /dev/null
./gst-tool gst-package
--kernel-dir="/e/Programacao/Linguagens/Smalltalk/GNU/smalltalk-3.0.2/kernel"
--image="/e/Programacao/Linguagens/Smalltalk/GNU/smalltalk-3.0.2/gst.im"
--srcdir=. --target-directory=. packages/browser/package.xml
mkdir "C:\DOCUME~1\CESARS~1.RAB\CONFIG~1\Temp\gstar-DOSSV0"
mkdir "C:\DOCUME~1\CESARS~1.RAB\CONFIG~1\Temp\gstar-DOSSV0\Browser"
gst-package: Operation not permitted
cp -p -f "e:\Programacao\Linguagens\Smalltalk\GNU\smalltalk-3.0.2\packages\browser\BrowShell.st"
C:\DOCUME~1\CESARS~1.RAB\CONFIG~1\Temp\gstar-DOSSV0\Browser\BrowShell.st.stmake[2]:
*** [Browser.star] Error 1
SRC> \e:\Programacao\Linguagens\Smalltalk\GNU\smalltalk-3.0.2\packages\browser\BrowShell.st
DST> C:\DOCUME~1\CESARS~1.RAB\CONFIG~1\Temp\gstar-DOSSV0\Browser\BrowShell.st
make[2]: Leaving directory
`/e/Programacao/Linguagens/Smalltalk/GNU/smalltalk-3.0.2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/e/Programacao/Linguagens/Smalltalk/GNU/smalltalk-3.0.2'
*** [all] Error 2


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Re: Building in mingw (3.0.2)

Paolo Bonzini-2
The bug occurs because your installation drive is different from the
compilation drive.  The attached patch will fix it.

Paolo

2008-04-15  Paolo Bonzini  <[hidden email]>

        * kernel/File.st: Don't prepend a \ if an absolute path is
        created by #computePathFrom:to: and the destination path has a
        disk letter in it.

diff --git a/kernel/File.st b/kernel/File.st
index 9170a3d..063e916 100644
--- a/kernel/File.st
+++ b/kernel/File.st
@@ -192,13 +192,14 @@ size and timestamps.'>
 
     File class >> computePathFrom: srcName to: destName [
  <category: 'private'>
- | src dest srcCanon destCanon path |
+ | src dest srcCanon destCanon path isUnix |
  "A Windows path may contain both / and \ separators. Clean it up
  to allow easy parsing"
- srcCanon := Directory pathSeparator = $/
+ isUnix := Directory pathSeparator = $/.
+ srcCanon := isUnix
     ifTrue: [srcName]
     ifFalse: [srcName copyReplacing: $/ withObject: Directory pathSeparator].
- destCanon := Directory pathSeparator = $/
+ destCanon := isUnix
     ifTrue: [destName]
     ifFalse: [destName copyReplacing: $/ withObject: Directory pathSeparator].
 
@@ -208,14 +209,19 @@ size and timestamps.'>
  src removeLast.
  dest := dest asOrderedCollection.
  dest isEmpty ifTrue: [dest addLast: ''].
- path := (src notEmpty and: [src first ~= dest first])
+ path := (src notEmpty and: [src first ~= dest first])
+    ifTrue: [
+ "Don't prepend a \ if the destination path has a disk letter."
+ (isUnix or: [ (dest first at: 2 ifAbsent: [ nil ]) ~= $: ])
     ifTrue: [OrderedCollection with: '']
-    ifFalse:
- [[src isEmpty or: [dest size = 1 or: [src first ~= dest first]]]
-    whileFalse:
- [src removeFirst.
- dest removeFirst].
- src collect: [:each | '..']].
+    ifFalse: [OrderedCollection new]]
+    ifFalse:
+ [[src isEmpty or: [dest size = 1 or: [src first ~= dest first]]]
+    whileFalse:
+ [src removeFirst.
+ dest removeFirst].
+ src collect: [:each | '..']].
+
  path addAllLast: dest.
  ^path fold: [:a :b | a , Directory pathSeparatorString , b]
     ]

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk