On Sun, Jul 3, 2011 at 5:45 PM, Ruben Van Boxem <vanboxem.ru...@gmail.com>wrote:

> 2011/7/3 Bj Raz <whitequill...@gmail.com>:
> >
> >
> > On Sun, Jul 3, 2011 at 4:22 PM, Ruben Van Boxem <
> vanboxem.ru...@gmail.com>
> > wrote:
> >>
> >> 2011/7/3 Bj Raz <whitequill...@gmail.com>:
> >> > On Sun, Jul 3, 2011 at 6:06 AM, JonY <jo...@users.sourceforge.net>
> >> > wrote:
> >> >>
> >> >> On 7/3/2011 12:10, Bj Raz wrote:
> >> >> > I've been working on cross compiler for building w64 binaries. I
> just
> >> >> > wanted to see if I could do it :P
> >> >> > I'm following the directions from Linux From Scratch (modifying
> them
> >> >> > as
> >> >> > needed).
> >> >> > So I've built gcc with c++ support and I have the errors:
> >> >> >
> >> >>
> >> >> See mingw-w64-docs for help on building. A lot of LFS doesn't apply
> to
> >> >> mingw-w64.
> >> >>
> >> >> > /tools/x86_64-w64-mingw32/bin/ld cannot find dllcrt2.o: No such
> file
> >> >> > or directory
> >> >> > /tools/x86_64-w64-mingw32/bin/ld cannot find crtbegin.o: No such
> file
> >> >> > or directory
> >> >> > /tools/x86_64-w64-mingw32/bin/ld cannot find crtend.o: No such file
> >> >> > or
> >> >> > directory
> >> >> > collect2: ld returned 1 exit status
> >> >> > make[2]: *** [libgcc_s.dll] Error 1
> >> >> > make[1]: *** [all-target-libgcc] Error 2
> >> >> > make: *** [all] Error 2
> >> >> > can someone please either send me to the right list, or tell me
> what
> >> >> > I
> >> >> > should do.
> >> >> >
> >> >>
> >> >> You are missing the CRT, see mingw-w64-crt.
> >> >>
> >> >> > my configure options are as follows:
> >> >> >
> >> >> > libtool --finish /tools/libexec/gcc/x86_64-w64-mingw32/x.x.x/
> >> >> > AR=x86_64-w64-mingw32-ar RANLIB=x86_64-w64-mingw32-ranlib \
> >> >> > ../gcc-4.5.1/configure --prefix=/tools \
> >> >> > --with-local-prefix=/tools --enable-clocale=gnu \
> >> >> > --enable-shared --enable-threads=posix \
> >> >> > --enable-__cxa_atexit --enable-languages=c,c++ \
> >> >> > --disable-libstdcxx-pch --disable-multilib \
> >> >> > --disable-bootstrap --disable-libgomp \
> >> >> > --without-ppl --without-cloog --build=x86_64-suse-linux-gnu
> >> >> > --host=x86_64-suse-linux-gnu --target=x86_64-w64-mingw32
> >> >> >
> >> >>
> >> >> You'd run into problems setting AR and RANLIB like that, let
> autotools
> >> >> do its job.
> >> >
> >> > As I said, I'm just following directions from LSF (Linux From Scratch)
> >> >
> >> >
> http://archive.linuxfromscratch.org/lfs-museum/6.6/LFS-BOOK-6.6-HTML/chapter05/gcc-pass2.html
> >> > Everything I've done is based on this and another reference. Combined
> >> > with
> >> > some of my own figuring out how to make it work.
> >> >>
> >> >> Posix thread isn't for the faint hearted, you need to bootstrap
> >> >> winpthread dll with libgcc, but DLLs can't be built without libgcc. I
> >> >> suggest you remove --enable-threads=posix unless you have some
> special
> >> >> needs, let gcc use the more tested win32 threads.
> >> >
> >> > I recently found a reference that shows some threads being win32
> rather
> >> > then
> >> > pthreads "--with-libgc-threads=w32" is another option I've seen
> >> > recently,
> >> > and I was wondering if there is also "--with-msvc-threads"  I can't
> seem
> >> > to
> >> > find that exactly though. No there is no need for pthreads accept for
> >> > just
> >> > figuring out the right options right now.
> >> >>
> >> >> You are also missing essential options like
> >> >> --enable-fully-dynamic-strings and --enable-sjlj-exceptions, you are
> >> >> likely to break ABI from the auto builds. Finally, remove
> >> >> --enable-__cxa_atexit, it will only work for glibc based hosts as far
> >> >> as
> >> >> I know.
> >> >
> >> > I'll try the flags you are suggesting, would you suggest I do anything
> >> > different for Pass 1 of building binutils, and gcc?
> >> > I skipped the Linux Headers, and glibc, and just use mingw-64 headers,
> >> > and
> >> > msvc headers.
> >> > Also I had to do that before I made gcc pass 1. rather then after.
> >> > otherwise
> >> > gcc doesn't build right without the mingw headers.
> >> >
> >> > Please refer to the LFS book for more reference to what I'm talking
> >> > about.
> >> > If you want I can send you the entire history of commands I have done
> >> > (in
> >> > the order I did them), I write them all down so I can reproduce it if
> I
> >> > have
> >> > to.
> >> > This also includes where I get my sources from.
> >>
> >> It would probably be easier for you to use the options that work: you
> >> can look at my scripts (if you can read basic Bash) here:
> >>
> https://github.com/rubenvb/MinGW-w64-build-scripts/tree/master/toolchain
> >>
> >> If you select a versioned tag, like 4.6.1-3, it will be guaranteed to
> >> work (if you have the source directories set up correctly), especially
> >> if you download a source package, which includes everything you'll
> >> need:
> >>
> https://github.com/rubenvb/MinGW-w64-build-scripts/tree/master/toolchain
> >>
> >> Modify the host and target and build values in the build*.sh scripts,
> >> and run them: the buildcross*.sh build a cross-compiler, the
> >> buildmingw*.sh build a native compiler. If you're on MSYS, you won't
> >> need the cross compiler step.
> >
> > No. My host is x86_64-suse-linux-gnu. Cause msys/mingw doesn't have
> enough
> > in it to build its self very well.
>
> OK, change the buildcross*.sh scripts to this:
> HOST=x86_64-suse-linux-gnu
> TARGET=*-w64-mingw32
> BUILD=x86_64-suse-linux-gnu
>
> where * is either x86_64 or i686. The buildmingw*.sh scripts need:
> HOST=*-w64-mingw32
> BUILD=x86_64-sus-linux-gnu
> TARGET=*-w64-mingw32
>
> where * is again, x86_64 or i686. You can use the scripts to deduce
> whatever options need to be added. My scripts enable as much as
> possible in everything, so you won't miss any features.
>
> >>
> >> The options used to build every bit are in the scripts directory,
> >> mostly in the scripts named after the package, otherwise in the
> >> common.sh script. Be sure to use the latest tag, because the master
> >> branch is quite a mess (cough: read work in progress :) ).
> >>
> >> Ruben
> >
> > I've included everything I've done up to this point.
>
> I see you're using unofficial sources for mingw-w64, using a strange
> ac_cv_sizeof_mp_limb_t=8 option which shouldn't be necessary,
>
The strange option, "ac_cv_sizeof_mp_limb_t=8" forces it to make the ABI
(Application Binary Interface) to be a 64bit void. So nothing is built as
32bit, it defaults to 4, which is 32bit.

> disabling threads, shared, libssp, libmudflap, libgomp, and
> decimal-float in GCC (why?, just leave out that option, GCC configure
> is smart enough to detect those things by itself. Then there's a bunch
> of hackery going on, which shouldn't be needed whatsoever.
>
> Please take a look at the mingw-w64 wiki for instructions on how to
> build a cross- and native compiler here:
> http://sourceforge.net/apps/trac/mingw-w64/
>
> The wiki is a good place to start, my scripts provide a full-fledged
> build process you need to take a good look at.
>
> Ruben

So far the C compiler I've built works fine. I believe the "hackory" is to
remove the host from the equation so when you build nothing is dependent on
the host. So you have a bare bones system.

>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> Mingw-w64-public mailing list
> Mingw-w64-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to