Commit Graph

131 Commits

Author SHA1 Message Date
Alex Smith 4591ebc99a Fixes for building Haiku x86_64 from itself. 2012-08-18 19:57:46 +01:00
Alex Smith aaeadfcb02 Do a separate libgcc build for the kernel as well.
Turns out that libgcc is needed, for some reason building the kernel
with -O0 does not end up referencing libgcc but -O2 does. A separate
build of it is done with -mno-red-zone, same reason as for libsupc++.
Ended up being easy to rebuild with different CFLAGS: previously I'd
tried doing `CFLAGS="-mno-red-zone" make` in the libgcc dir which
didn't override, the correct way is `make CFLAGS="-mno-red-zone"`
2012-08-16 17:38:01 +01:00
Alex Smith c864ba1a2d Build a separate libsupc++ for the kernel with correct flags.
Kernel mode code on x86_64 needs to be built with -mno-red-zone as
interrupts would corrupt the red zone if it were in use. However, the
kernel is linked with libsupc++, which was not compiled with
-mno-red-zone. If an interrupt occurred in libsupc++ code the red zone
would get corrupted. This was causing random panics, particularly under
heavy system load. Therefore, on x86_64 a separate build of libsupc++
with -mno-red-zone is now done for the kernel to use. Note: this commit
will require a rerun of configure and rebuild of cross tools.
2012-08-16 13:57:04 +01:00
Alex Smith b77772725c Changed x86_64 toolchain target to x86_64-unknown-haiku. 2012-08-01 11:46:44 +01:00
Alex Smith bd16f0dd82 Fixed configure for legacy buildtools.
The elfedit tool doesn't exist with the old binutils, so configure was
failing when it tried to get the path to it. Only try to search for it
if building GCC 4.
2012-07-30 08:25:16 +01:00
Alex Smith 0efc5e72dc Merge branch 'master' into x86_64 2012-07-28 16:29:41 +01:00
Alex Smith 0d47dc5dd2 Fixed incorrect variable name in generated BuildConfig. 2012-07-28 16:26:07 +01:00
Alex Smith 385d69fc01 Made it possible to build kernel modules for x86_64.
Added the necessary build flags for modules, and added a module (dpc)
to the floppy image for x86_64 builds for testing purposes. The module
gets loaded correctly and its code runs without issue. Only non-trivial
addition is the different method for generating kernel.so, this is
explained in the kernel Jamfile.
2012-07-19 17:53:46 +01:00
Alex Smith 98614a9658 Merge branch 'master' into x86_64 2012-07-12 11:33:39 +01:00
Alex Smith 97f5a0bd35 Fixed case-sensitive filesystem check. 2012-07-11 17:41:52 +01:00
Alex Smith fc644104ac Merge branch 'master' into x86_64 2012-07-11 12:24:47 +01:00
Alex Smith 0962132cc6 Fixed Mac OS X 10.7 as a build platform (for GCC 4).
* Use gcc and g++ rather than cc and c++, as the latter now point to
  clang with recent Xcode versions and compilation of the host tools
  fail for various reasons with it.
* Replace the case-sensitive filesystem check with a more basic one,
  as diskutil no longer supports the behaviour of getting info for the
  volume that any path is on.
* Updated ReadMe with a correct list of prerequisites for OS X.
* GCC 2 builds are still broken due to a strange error that only
  occurs with a GCC 2 built on OS X 10.7
2012-07-10 19:33:39 +01:00
Alex Smith 65ad1ba320 Made it possible to build the bootloader when targetting x86_64.
* x86_64 is using the existing *_ia32 boot platforms.
* Special flags are required when compiling the loader to get GCC to compile
  32-bit code. This adds a new set of rules for compiling boot code rather
  than using the kernel rules, which compile using the necessary flags.
* Some x86_64 private headers have been stubbed by #include'ing the x86
  versions. These will be replaced later.
2012-05-26 21:47:27 +01:00
John Scipione 19d28b2205 Fix configure script to correctly detect case-sensitive file system 2012-03-05 23:13:13 -05:00
John Scipione 5e4d3774eb Change m86k to m68k in configure script. Fixes ticket #8239. 2011-12-15 01:22:04 -05:00
Oliver Tappe c51014771d Adjust required legacy gcc version. 2011-11-22 19:00:22 +01:00
Ingo Weinhold bd291de302 Remove yasm check. Looks like I had accidentally (?) disabled the
version already.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-03 14:27:39 +00:00
Ingo Weinhold 25dc253d6a * Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-22 13:06:36 +00:00
Oliver Tappe 9a00115643 Last part of #3298:
* applied patch by VinDuv that adds a Perl-based implementation of readlink,
  which is needed on Mac OX X, as that doesn't have any of the other fallbacks
  - thanks!
IIRC, other people have managed to configure without this on Mac OS X, but
I suppose no harm can be done by providing this as last resort.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 16:17:36 +00:00
Axel Dörfler f9bb7404fa * Updated the GCC2 package to version -100818. This will soon be needed to be
able to build Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 14:31:52 +00:00
Oliver Tappe c3bcd1ce7c * remove references to timezone files, as those no longer exist
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-27 19:30:02 +00:00
Oliver Tappe 7a5c50f900 * updated optional package for gcc2 to gcc-2.95.3-x86-gcc2-2010-07-12
(a version that correctly deals with utf-8 chars in wide character literals)
* adjusted required gcc2 version in configure

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-12 19:32:24 +00:00
Ingo Weinhold 97901ec593 Patch by Nathan Mentley:
* Added a few header files in headers/posix/arch that'll allow for an x86_64
  haiku target to be compiled. fenv.h is src/lib/msun/amd64/fenv.h from
  freebsd.
* configure: Added support for x86_64 arch when running
  build_cross_tools_gcc4.
* config[_build]/HaikuConfig.h, BuildSetup: Added x86_64 recognition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-11 19:40:06 +00:00
Ingo Weinhold 51355c1037 Axel changed the HAIKU_ADD_ALTERNATIVE_GCC_LIBS semantics. Init to 0.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 19:27:58 +00:00
Ingo Weinhold 138f5fb42a Just check which's return value -- no need for test and output capturing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 19:01:53 +00:00
Ingo Weinhold b6c7c42861 Burn the witches.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 18:55:04 +00:00
Ingo Weinhold 089cfbf774 Updated required legacy gcc version.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 18:19:37 +00:00
Matt Madia b29b48b116 A further refinement to support realpath when available.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 03:16:36 +00:00
Matt Madia b4b6d83c5a Reworks 36361 to not assume that greadlink is installed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 02:36:56 +00:00
Matt Madia 7fe2e06cfd Replaced '&> /dev/null' with '> /dev/null 2>&1'.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-20 02:18:54 +00:00
François Revol ff3c7b9645 Use greadlink when found, as the BSD readlink has no clue about the -e option.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-19 23:41:59 +00:00
Ingo Weinhold 3f9f9f9aee * Resolve symlinks to the standard libraries as suggested by Andreas Faerber.
Fixes #5744.
* Removed commented obsolete code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-19 16:29:23 +00:00
Ingo Weinhold 76fa0be374 Patch by Matt Madia:
* Renamed DownloadFile to DownloadLocatedFile.
* Pulled a generalized rule DownloadFile out of DownloadOptionalPackage.
* Added InstallSourceArchive rule which can be used in OptionalPackages to
  add sources for installed packages to the image.
* Added configure option --include-sources to enable including the sources
  for third party software in the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-25 16:13:22 +00:00
Ingo Weinhold ab2540c49c 80 columns limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 21:23:52 +00:00
Ingo Weinhold 7986925f9f Use the same names for the HAIKU_[HOST_]USE_32BIT and HAIKU_[HOST_]USE_XATTR
variables in the script and in generated BuildConfig file. Otherwise the
--update option wouldn't correctly pick it up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 21:21:39 +00:00
Ingo Weinhold ffe8b20cda Clear HAIKU_SHARED_LIBSTDC++ and HAIKU_SHARED_LIBSUPC++ when the compiler
doesn't know them. Not sure why that was commented out -- only this way the
build system knows that the libs aren't available. Fixes the non-Haiku build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 20:37:23 +00:00
Ingo Weinhold 441945d568 Whitespace cleanup. Someone should check his editor settings. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-11 02:55:41 +00:00
François Revol c505b2765b Patch by Matt Madia: detect host sfdisk in configure for ARM, including the FreeBSD port.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-07 22:08:12 +00:00
Oliver Tappe 7c4641d0af * added --update option to configure which will re-run the last invocation
(--update must be given as first option, but can be followed by others)
* added simple perl scripts that is used by configure to convert BuildSetup
  from jam to shell format



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-04 19:36:58 +00:00
Ingo Weinhold 3e5498e4c9 Patch by Andreas Färber modified by myself:
* Determine HOST_LD and HOST_OBJCOPY in configure.
* Removed Solaris ld work-around in BuildSetup.

The change requires configure to be re-run. Alternatively HOST_{LD,OBJCOPY}
can be added to generated/build/BuildConfig.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-04 17:50:52 +00:00
François Revol 55d267a46d Make configure dump its invocation arguments to the BuildConfig file to allow for easier rerun later, as I'm getting tired to figure each of them each time someone adds some config variable...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-03 03:05:12 +00:00
Ingo Weinhold 0b58d8440c * Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-20 13:55:45 +00:00
Ingo Weinhold a85cf9d793 * configure: Pass gcc's host machine string to the jam build system.
* BuildSetup: Set jam variable HOST_PLATFORM_IS_64_BIT and add host define
  HAIKU_HOST_PLATFORM_64_BIT if the host platform is 64 bit. Removed the
  check from BeOSBuildCompatibility.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-24 18:57:49 +00:00
Ingo Weinhold 60d8d8fcc5 * Added -j<n> option to configure. It is passed to the
build_cross_tools[_gcc4] script which in turn passes it to make. Cores and
  hyperthreads are plentiful these days; no need to let most of them idle when
  building the cross tools.
* Sorted the configure options alphabetically again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-23 19:34:55 +00:00
Axel Dörfler 3578c56a15 * Moved timezone and keymap source files to the correct place in the repository.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-10 13:48:56 +00:00
Michael Pfeiffer 0651c859cf In OS X 10.6 diskutil returns an error for ".". Now pass the absolute path of the current working directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-03 16:25:23 +00:00
Axel Dörfler 67838392dc * Applied stippi's no-patents patch, but without the ffmpeg part, as that one
is obviously already configured not to use patented code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-21 17:20:23 +00:00
Oliver Tappe 16d5c24e53 * merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-07 10:30:09 +00:00
François Revol 23eb9a9e82 Set default ARFLAGS to cru instead of ru. No functionnal change, but it should suppress a warning about ar needing to create the archive.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-29 11:01:46 +00:00
Michael Lotz 3ecc528774 On Darwin/Mac OS X use diskutil to determine if the volume we configure on is a
case-sensitive one. If not, print out a message and a link to the guide that
describes how to set one up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-30 00:38:43 +00:00