2017-07-23 23:18 GMT+02:00 Nicolai Hess <nicolaih...@gmail.com>:

>
>
> 2017-07-23 22:38 GMT+02:00 Nicolas Cellier <nicolas.cellier.aka.nice@
> gmail.com>:
>
>>
>>
>> 2017-07-23 19:56 GMT+02:00 Nicolai Hess <nicolaih...@gmail.com>:
>>
>>>
>>>
>>> 2017-07-23 19:42 GMT+02:00 Hernán Morales Durand <
>>> hernan.mora...@gmail.com>:
>>>
>>>> 2017-07-22 10:03 GMT-03:00 Nicolai Hess <nicolaih...@gmail.com>:
>>>> >
>>>> > Hm, I tried to create the build environment used for the
>>>> > windows vm build from opensmalltalk.
>>>> >
>>>> > I setup a cygwin environment with the same install commands as from
>>>> > https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/.
>>>> appveyor.yml
>>>> >
>>>> > My problems, first it is missing make and wget, I can add make and
>>>> wget to the install command line for cygwin, but I am
>>>> > curious why it is working on the build server ?
>>>> >
>>>> > Anyway, after I got this working, the build stops and building the
>>>> pkg-config package.
>>>> > The log says it can not find a gcc, I know that the build process
>>>> with cygwin uses
>>>> > i686-w64-mingw32-gcc
>>>> > or
>>>> > x86_64-w64-mingw32-gcc
>>>> >
>>>> > But I don't understand where is the missing step to tell the
>>>> configure scripts to use the
>>>> >
>>>> > i686-w64-mingw32-gcc command instead of "gcc",
>>>> >
>>>> > again, this seems to work on the appveyor build but not locally on my
>>>> machine.
>>>> >
>>>> > Any idea what I had missed?
>>>> >
>>>>
>>>> I solved it in MinGW by adding the path of i686-w64-mingw32-gcc.exe in
>>>> your profile. So if you profile is c:\MinGW\msys\1.0\etc\profile and
>>>> the .exe is in /c/MinGW/msys/1.0/bin then change as administrator the
>>>> line:
>>>>
>>>> MSYS2_PATH="/usr/local/bin:/usr/bin:/bin"
>>>>
>>>> to
>>>>
>>>> MSYS2_PATH="/c/MinGW/msys/1.0/bin:/c/MinGW/bin:/usr/local/bi
>>>> n:/usr/bin:/bin"
>>>>
>>>> And finally
>>>>
>>>> source /etc/profile
>>>>
>>>> Cheers,
>>>>
>>>
>>> I always had problems using mingw in the past. I got a working mingw
>>> environment some years ago, and a newer mingw version
>>> did not work well (some changes on the debug and exception format).
>>> But now, the build process for pharo did change. (The build instructions
>>> on github/pharo-vm are old and do not work anymore.
>>>
>>> And I hoped to get a more automatic and more reliable build process by
>>> using the same commands used by the build server for
>>> the opensmalltalk pharo vm sources.
>>>
>>> And I thought the compiler used to build the latest pharo-vm for windows
>>> is from cygwin ?
>>>
>>>
>>>
>> Hi Nicolai,
>> more exactly we cross compile from a cygwin environment for a mingw
>> target.
>> The main reason for switching to cygwin are:
>> - this is required for the 64 bit vm
>> - the other flavours on opensmallalk (squeak/newspeak) were also built
>> with cygwin, so it's more simple to maintain a single way of doing things
>>
>> Cygwin is required for the 64bits vm because of directx.
>> Indeed cygwin still provides support for the legacy directx version used
>> by the VM, while recent mingw does not.
>> Until we port to a newer API, mingw thus depends on the MS directx
>> include and library files that we redistribute for 32 bits only (and we
>> should not without permission, I plan to remove these files). That does not
>> work at all for 64 bits.
>>
>> The 64bits VM does not work either with gcc and requires clang currently.
>> installing clang in mingw is tedious, while it's a prebuilt package in
>> cygwin.
>>
>> You now know why we use cygwin, not how, maybe it does not terribly
>> helps, but it's important in order to avoid regression, or to be aware of
>> what need to be done before changing the building environment again...
>> Could you detail what you tried exactly?
>>
>
>
> Setup cygwin:
>
> CYG_MIRROR=http://cygwin.mirror.constant.com
> CYG_ROOT='c:\cygwin'
> CYG_SETUP=setup-x86.exe
> MINGW_ARCH=i686
> $CYG_SETUP -dgnqNO -R $CYG_ROOT -s "$CYG_MIRROR" -l
> "$CYG_ROOT"/var/cache/setup -P mingw64-$MINGW_ARCH-gcc-core,
> mingw64-$MINGW_ARCH-gcc-g++,mingw64-$MINGW_ARCH-headers,
> mingw64-$MINGW_ARCH-runtime,zip,mingw64-$MINGW_ARCH-clang,
> libiconv-devel,libglib2.0-devel,perl,mingw64-$MINGW_
> ARCH-zlib,cmake,mingw64-$MINGW_ARCH-win-iconv,make,wget
>
> (taken from the appveyor.xml, I needed to add make and wget, don't know
> why, from the appveyor log I see that make and wget is installed, even
> without this option...)
>
> Run the build (from an "empty" environment, that is, no other msys or
> mingw in the path environment variable)
>
> set FLAVOR=pharo.cog.spur
> set ARCH=win32x86
> set MINGW_ARCH=i686
> set CYG_ROOT=c:\cygwin
> set TRAVIS_OS_NAME=windows
> set PATH=%CYG_ROOT%\bin;p:\git\bin;%PATH%;
> git config --system  core.autocrlf input
> git clone -q --depth=5 --branch=Cog https://github.com/
> OpenSmalltalk/opensmalltalk-vm.git C:\projects\vm
> SET APPVEYOR_BUILD_FOLDER=c:\projects\vm
> git checkout -qf 88c4c56245f3308e711b38467bb7636864886d16
> %CYG_ROOT%\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER;exec 0</dev/null;exec
> ./.travis_build.sh"
>
>
I still have problems building the pharo vm locally with the above setup.
Somehow I can not build the thirdparty libs
The compiler I use from the cygwin installation is
i686-w64-mingw32-gcc
But I can not see where this is set for the third party libs (starting with
pkg-config).

Are they really build on the travis build server ? I can not see it in the
build log.

nicolai




>
>
>
>>
>> Nicolas
>>
>>
>>>> Hernán
>>>>
>>>> >
>>>> > nicolai
>>>> >
>>>> >
>>>> >
>>>> > 2017-03-15 10:11 GMT+01:00 Nicolai Hess <nicolaih...@gmail.com>:
>>>> >>
>>>> >>
>>>> >>
>>>> >> 2017-03-15 9:22 GMT+01:00 philippe.b...@highoctane.be <
>>>> philippe.b...@gmail.com>:
>>>> >>>
>>>> >>> I made my own build here.
>>>> >>> Not up to date with latest stuff but should work for the build
>>>> process.
>>>> >>>
>>>> >>> https://ci.appveyor.com/project/philippeback/pharo-vm
>>>> >>>
>>>> >>> It uses my forked repo and provided you set your own bintray env
>>>> vars for API keys will publish there.
>>>> >>>
>>>> >>> Check all of the output of env vars and where/which in the appveyor
>>>> console to see what gets used when when it comes to compilers and so on as
>>>> there were various compiler versions involved at one point.
>>>> >>>
>>>> >>> Third party cache part is also worth checking.
>>>> >>>
>>>> >>> Still not able to build on my local box at the moment due to some
>>>> tools discrepancies happening.
>>>> >>>
>>>> >>> My build artifacts are embarking too much at this point but allow
>>>> you ro get the release, debug, and assert vms for windows. This helps when
>>>> debugging as backtraces and so on are much more meaningful and one can use
>>>> gdb more effectively to understand what is going on.
>>>> >>>
>>>> >>> Just keep the dlls and exes and you'll be fine.
>>>> >>
>>>> >>
>>>> >> Ah good, thank you.
>>>> >>
>>>> >>
>>>> >>>
>>>> >>>
>>>> >>> HTH
>>>> >>>
>>>> >>> Phil
>>>> >>>
>>>> >>> Le 15 mars 2017 08:58, "Nicolai Hess" <nicolaih...@gmail.com> a
>>>> écrit :
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> 2017-03-14 22:22 GMT+01:00 Nicolas Cellier <
>>>> nicolas.cellier.aka.n...@gmail.com>:
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> 2017-03-14 9:30 GMT+01:00 Nicolas Cellier <
>>>> nicolas.cellier.aka.n...@gmail.com>:
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>> 2017-03-14 8:58 GMT+01:00 Nicolai Hess <nicolaih...@gmail.com>:
>>>> >>>>>>>
>>>> >>>>>>>
>>>> >>>>>>>
>>>> >>>>>>> 2017-03-11 10:01 GMT+01:00 Nicolas Cellier <
>>>> nicolas.cellier.aka.n...@gmail.com>:
>>>> >>>>>>>>
>>>> >>>>>>>> Hi Nicolai,
>>>> >>>>>>>>
>>>> >>>>>>>> If you look at appveyor.yml configuration on
>>>> https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/.
>>>> appveyor.yml, you will see that the pharo brand is not yet in the
>>>> matrix.
>>>> >>>>>>>>
>>>> >>>>>>>> It's because builds are based on cygwin, but as I understood,
>>>> some library used by some plugin required by pharo refuse to compile with
>>>> cygwin. They appear to work with mingw32.
>>>> >>>>>>>> Cygwin provides headers for legacy directx, some distribution
>>>> of mingw32 did in the past, but it does not seem the case anymore.
>>>> >>>>>>>> Using the directx headers from Microsoft SDK is a problem.
>>>> They are not redistributable and can't be found anymore on the net (too
>>>> old). We cannot seriously base the builds on something so fragile (both
>>>> technically and legally) in the long term.
>>>> >>>>>>>>
>>>> >>>>>>>> Also, the 64 bits VM does only work with clang, and we don't
>>>> have anything available as a 64bits Microsoft SDK... So pharo has to fix
>>>> that too.
>>>> >>>>>>>>
>>>> >>>>>>>> In the interim, you should look at
>>>> https://github.com/pharo-project/pharo-vm/blob/master/.appveyor.yml
>>>> and follow the scripts there.
>>>> >>>>>>>
>>>> >>>>>>>
>>>> >>>>>>> Ok, thank you.
>>>> >>>>>>>
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>> I gave it a shot on sunday, because it was particularly rainy in
>>>> Nantes, and I almost succeeded in compiling all the dependencies with
>>>> cygwin.
>>>> >>>>>> Well, I mean with autotools cmake libtool pkg-config and I
>>>> surely forget a few other niceties that some not so well informed
>>>> programmers committed with the faith that it would make their life
>>>> "easier". It certainly does not make mine simpler...
>>>> >>>>>> Almost, because gcc 5.4.0 failed to compile cairo with ssize_t:
>>>> it seems that the workaround of Igor does not work anymore.
>>>> >>>>>> ssize_t, WTF???
>>>> >>>>>> Maybe I'll be able to fix it tonight. Or tomorrow. In which case
>>>> I'll publish the branch to see how far appveyor goes.
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> So I solved the ssize_t problem by removing the hack from Igor
>>>> which is not necessary anymore...
>>>> >>>>> But got another problem soon after while building the tests...
>>>> >>>>> There are trailing lines generated at end of
>>>> tests/cairo-test-constructors.c that make the compilation fail:
>>>> >>>>>
>>>> >>>>> i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..  -I. -I./pdiff
>>>> -I../boilerplate -I../util/cairo-missing -I../util/cairo-script -I../src
>>>> -I../src -D_REENTRANT     -I/cygdrive/y/Smalltalk/opens
>>>> malltalk-vm/.thirdparty-cache/windows/i386/include/pixman-1
>>>>  
>>>> -I/cygdrive/y/Smalltalk/opensmalltalk-vm/.thirdparty-cache/windows/i386/include/libpng16
>>>>    -Wall -Wextra -Wmissing-declarations 
>>>> -Werror-implicit-function-declaration
>>>> -Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked -Wswitch-enum
>>>> -Wmissing-format-attribute -Wvolatile-register-var -Wstrict-aliasing=2
>>>> -Winit-self -Wunsafe-loop-optimizations -Wno-missing-field-initializers
>>>> -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline
>>>> -fno-strict-aliasing -fno-common -Wp,-D_FORTIFY_SOURCE=2
>>>> -Wno-unused-but-set-variable                  -D_REENTRANT  -m32
>>>> -static-libgcc -static-libstdc++ -I/cygdrive/y/Smalltalk/opensm
>>>> alltalk-vm/.thirdparty-cache/windows/i386/include -march=pentium4 -c
>>>> -o cairo_test_suite-cairo-test-constructors.o `test -f
>>>> 'cairo-test-constructors.c' || echo './'`cairo-test-constructors.c
>>>> >>>>> cairo-test-constructors.c:1118:1: attention : la définition de
>>>> données n'a pas de type ni de classe de stockage
>>>> >>>>>  oning ();
>>>> >>>>>  ^
>>>> >>>>> cairo-test-constructors.c:1118:1: attention : type defaults to
>>>> ‘int’ in declaration of ‘oning’ [-Wimplicit-int]
>>>> >>>>> cairo-test-constructors.c:1119:5: attention : la définition de
>>>> données n'a pas de type ni de classe de stockage
>>>> >>>>>      _register_ft_show_glyphs_table ();
>>>> >>>>>      ^
>>>> >>>>>
>>>> >>>>> And the file looks like it has obviously been overwritten, but
>>>> not truncated !!!
>>>> >>>>>
>>>> >>>>> ...
>>>> >>>>> extern void _register_multi_page (void);
>>>> >>>>> extern void _register_fallback_resolution (void);
>>>> >>>>>
>>>> >>>>> void
>>>> >>>>> _cairo_test_runner_register_tests (void)
>>>> >>>>> {
>>>> >>>>>     _register_a1_bug ();
>>>> >>>>>     _register_a1_clip_paint ();
>>>> >>>>> ...
>>>> >>>>>     _register_multi_page ();
>>>> >>>>>     _register_fallback_resolution ();
>>>> >>>>> }
>>>> >>>>> oning ();
>>>> >>>>>     _register_ft_show_glyphs_table ();
>>>> >>>>>     _register_ft_text_vertical_layout_type1 ();
>>>> >>>>>     _register_ft_text_vertical_layout_type3 ();
>>>> >>>>>     _register_ft_text_antialias_none ();
>>>> >>>>>     _register_ps_eps ();
>>>> >>>>>     _register_ps_features ();
>>>> >>>>>     _register_ps_surface_source ();
>>>> >>>>>     _register_svg_surface ();
>>>> >>>>>     _register_svg_clip ();
>>>> >>>>>     _register_svg_surface_source ();
>>>> >>>>>     _register_multi_page ();
>>>> >>>>>     _register_fallback_resolution ();
>>>> >>>>> }
>>>> >>>>>
>>>> >>>>> This file is generated by a shell script
>>>> test/make-cairo-test-constructors.sh
>>>> >>>>> I can't find any reference of the bug, and upgrade to version
>>>> 1.14.8 does not solve the issue.
>>>> >>>>> So it will wait until tomorrow...
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> I got the build for windows with mingw nearly working. (it can not
>>>> build some plugins, like SqueakSSL for windows, because the used wincrypt.h
>>>> is different in the mingw distrubtion).
>>>> >>>>
>>>> >>>> I still have the problem, that there seems to be a preprocessing
>>>> step , that should put the vm-version (and source timestamp) in the
>>>> sqSCCSVersion.h
>>>> >>>> I got this working  by running .travis_build.sh (with the options
>>>> for arch/flavor/platform) But how is this done normally when you build a vm
>>>> locally?
>>>> >>>> And how is this done for the pharo-vm we currently use?
>>>> >>>>
>>>> >>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> Nicolas
>>>> >>>>>
>>>> >>>>>>>>
>>>> >>>>>>>> I hope that Esteban will find time to resolve all these
>>>> problems and have pharo brand back on opensmalltalk-vm. I guess that any
>>>> form of help is welcome.
>>>> >>>>>>>>
>>>> >>>>>>>> Nicolas
>>>> >>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>> 2017-03-11 8:33 GMT+01:00 Nicolai Hess <nicolaih...@gmail.com
>>>> >:
>>>> >>>>>>>>>
>>>> >>>>>>>>> I still have problems building a vm on windows.
>>>> >>>>>>>>> can you give me some hints how to start ?
>>>> >>>>>>>>> I cloned the recent pharo-vm project,
>>>> >>>>>>>>> in opensmalltalk-vm\build.win32x86\pharo.cog.spur\
>>>> >>>>>>>>> run
>>>> >>>>>>>>> mvm
>>>> >>>>>>>>>
>>>> >>>>>>>>> But I got a couple of problems (mingw-32 compiler commands
>>>> not found, I had to adjust the include path for finding directx header,
>>>> missing variable replacement for git-versions).
>>>> >>>>>>>>> So I may miss some important steps.
>>>> >>>>>>>>> Is there a repository where I can clone the mingw environment
>>>> used to build the win32-pharo-vm, the environment used on the build-server 
>>>> ?
>>>> >>>>>>>>>
>>>> >>>>>>>>> Thanks
>>>> >>>>>>>>> Nicolai
>>>> >>>>>>>>>
>>>> >>>>>>>>> 2017-02-04 1:50 GMT+01:00 Nicolai Hess <nicolaih...@gmail.com
>>>> >:
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> 2017-02-04 1:44 GMT+01:00 Nicolai Hess <
>>>> nicolaih...@gmail.com>:
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> 2017-01-23 8:59 GMT+01:00 Esteban Lorenzano <
>>>> esteba...@gmail.com>:
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> On 22 Jan 2017, at 13:19, Nicolai Hess <
>>>> nicolaih...@gmail.com> wrote:
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> 2017-01-22 10:21 GMT+01:00 Clément Bera <
>>>> bera.clem...@gmail.com>:
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> Hi,
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> I believe they're built from
>>>> https://github.com/OpenSmalltalk/vm using travis and appveyor. On the
>>>> gitbhub readme there are relevant links. All built artifacts are also kept
>>>> on bintray for history.
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> Thank you!
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> no, they aren’t :)
>>>> >>>>>>>>>>>> instead, they are built here:
>>>> https://github.com/pharo-project/pharo-vm
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> (README still not updated)
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> what did changed ? I am not able to build the vm on windows
>>>> anymore (something wrong with generating the generator.image, I'll now
>>>> reset my local pharo-vm build directory and see if it works afterwards).
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> see attached the stderr log :
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> 'Errors in script loaded from u:\github\pharo-vm\scripts\Loa
>>>> dVMMaker.st'
>>>> >>>>>>>>>> [31mMessageNotUnderstood: receiver of "default:" is nil
>>>> >>>>>>>>>> [0mUndefinedObject(Object)>>doesNotUnderstand: #default:
>>>> >>>>>>>>>> BaseSoundSystem class>>initialize
>>>> >>>>>>>>>> MCMethodDefinition>>postloadOver:
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> ....
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> Are we still working with branch spur-64, or are we back on
>>>> master ?
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>> Esteban
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>> On Sun, Jan 22, 2017 at 9:25 AM, Nicolai Hess <
>>>> nicolaih...@gmail.com> wrote:
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> Where are the latest Pharo-spur-vms (32bit) are built?
>>>> >>>>>>>>>>>>>> I don't see them on the build server, only the
>>>> buildresults at
>>>> >>>>>>>>>>>>>> http://files.pharo.org/vm/pharo-spur32/linux/
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> The latest builds on the buildserver are from the last
>>>> year only.
>>>> >>>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>> nicolai
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>>
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>
>>>> >>>>>>>>>
>>>> >>>>>>>>
>>>> >>>>>>>
>>>> >>>>>>
>>>> >>>>>
>>>> >>>>
>>>> >>
>>>> >
>>>>
>>>>
>>>
>>
>

Reply via email to