Commit Graph

46982 Commits

Author SHA1 Message Date
Ingo Weinhold
b0944c78b0 More work towards hybrid support
* All packaging architecture dependent variables do now have a
  respective suffix and are set up for each configured packaging
  architecture, save for the kernel and boot loader variables, which
  are still only set up for the primary architecture.
  For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
  and TARGET_LIBSTDC++ are set to the respective values for the primary
  packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
  multiple packaging architectures. Generally the respective targets are
  (additionally) gristed with the packaging architecture. For libraries
  the additional grist is usually omitted for the primary architecture
  (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
  Jamfiles for targets built only for the primary architecture don't
  need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
  cross devel package as well as for libbe (untested).
2013-08-01 08:54:06 +02:00
Ingo Weinhold
159663ceba Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES 2013-08-01 08:54:05 +02:00
Ingo Weinhold
30f0d45ff7 Remove unused Haiku64Image 2013-08-01 08:54:05 +02:00
Ingo Weinhold
13dc541c25 libroot: os/arch: remove unsupported architectures 2013-08-01 08:54:05 +02:00
Oliver Tappe
0c59a38ecd Drop debug leftover. 2013-07-26 15:11:34 +02:00
Ingo Weinhold
c0e8cc1a13 configure: prepare for hybrid support
The goal is to do hybrid builds in a single jam (instead of calling a
sub-jam to build parts with the secondary tool chain). This changeset
adds support to configure to prepare multiple tool chains.

configure:
* Merge option --build-cross-tools-gcc4 into --build-cross-tools. The
  option does now always require a packaging architecture parameter,
  i.e. x86_gcc2 for the legacy tool chain.
* Multiple occurrences of the --build-cross-tools and
  --cross-tools-prefix options are allowed. The first one specifies the
  primary tool chain, the subsequent ones the secondary tool chains.
* All architecture dependent jam variables are now suffixed with the
  name of the packaging architecture. The new HAIKU_PACKAGING_ARCHS
  contains the packaging architectures for the prepared tool chains. The
  first element is for the primary tool chain.
* No longer generate a separate libgccObjects file. Just put the
  respective variable into BuildConfig as well.

build_cross_tools[_gcc4]:
* Replace the <haiku output dir> parameter by a <install dir>
  parameter. This allows to create different cross-tools directories.
  They are simply suffixed by the packaging architecture.

Jamrules:
* For the moment map the variables for the primary tool chain to the
  respective suffix-less variables, so that everything still works as
  before.

The next step is to actually support the secondary tool chains in the
jam build system. This will require quite a bit more butchering, though.
2013-07-25 23:52:49 +02:00
Ingo Weinhold
ef57df3d81 configure: remove BeOS support
Likely doesn't work anymore anyway.
2013-07-25 23:52:49 +02:00
Oliver Tappe
e2732c07a8 Fix 'package extract' with multiple explicit entries
* before adding a child to a parent entry, we need to check if the
  parent already contains that child, as otherwise duplicate children 
  with identical names would be added, which in turn messes up the
  handling of the entries that are to be extracted
2013-07-25 22:52:09 +02:00
Oliver Tappe
5bb173cf50 Add STXT-translator to the bootstrap image
* without this, StyledEdit wouldn't work
2013-07-24 21:24:07 +02:00
Ingo Weinhold
48b1ed4242 Add all bootstrap packages in DefaultBuildProfiles
* Don't handle the bootstrap case in the main Jamfile. Add all bootstrap
  packages to the image in the profile definition. That's less
  confusing, hopefully.
* Add the missing bootstrap packages (ncurses*, libtool_libltdl). The
  would normally be added in build_haiku_image when the package
  dependencies are resolved, but we don't do that for the bootstrap
  image, since we intentionally leave some dependencies out (e.g. perl)
  because they can be built.
2013-07-23 22:44:32 +02:00
Ingo Weinhold
81bd962f27 Add haikuporter and python to Haiku bootstrap image 2013-07-21 23:58:37 +02:00
Ingo Weinhold
26b0aa1ccd HaikuPortsCross repository: fix binutils, gcc revision mismatch
I don't think it makes that much sense to increment the revisions in
the cross recipes anyway, since there isn't any actual package
repository.
2013-07-21 21:34:02 +02:00
Ingo Weinhold
7b2174a27d BootstrapPackageRepository: serialize package creation
Since haikuporter uses a common directory for building the ports, we
can't build them concurrently. This makes jamming with multiple jobs
safe again.
2013-07-21 19:39:40 +02:00
Ingo Weinhold
a7ab22a0c0 HaikuPortsCross repository: icu_bootstrap is now available 2013-07-21 18:23:45 +02:00
Ingo Weinhold
e173a1ec1c Integrate building the HaikuPorts bootstrap packages
* Add configure option --bootstrap which allows specifying the
  haikuporter and HaikuPorts repository paths.
* Add rules for supporting a second repository type. The
  PackageRepository rule is now private and RemotePackageRepository is
  used for remote repositories. The new BootstrapPackageRepository rule
  is for defining a bootstrap repository (there will probably be only
  the HaikuPorts cross repository) whose packages can be built as needed
  via haikuporter.
* Rename DownloadPackage to FetchPackage.
* Define repository HaikuPortsCross.
* HaikuCrossDevel package(s): There are now two sets of packages: A
  "stage1" set with the same content as before and a final set
  additionally containing the libraries libbe, libnetwork, libpackage.
  Those are needed for building the libsolv bootstrap package while for
  building them we need other bootstrap packages (ICU, libz).

This is basically all that's required to build a bootstrap Haiku
completely from sources, with a few caveats:
* There's no ICU bootstrap recipe yet (so one has to cheat and use the
  prebuilt package ATM).
* Probably doesn't work on Haiku yet (tested on Linux only).
* A 32 bit environment must be used (otherwise building the gcc 2
  bootstrap package fails).
* Building with multiple jobs doesn't work yet, since haikuporter uses
  common directories for building different packages and there's no
  explicit serialization yet.
* Haven't tested the resulting image save for booting it. So it probably
  needs a bit more work before it can actually build the final
  HaikuPorts packages.
2013-07-21 04:10:48 +02:00
Ingo Weinhold
33f23ea80f Remove more stuff from the Haiku bootstrap packages/image
Namely GL/Mesa and libtiff.
2013-07-21 03:34:35 +02:00
Ingo Weinhold
b9eec5192d Include DefaultBuildProfiles earlier
DefaultBuildProfiles is now included earlier (right after BuildSetup).
This allows us to set HAIKU_BOOTSTRAP_BUILD earlier, so it can be used
for the repository selection. The actual build profile definitions,
which cannot be done that early, live in the rule
DefineDefaultBuildProfiles, which is invoked where the file was
previously included.
2013-07-21 03:20:26 +02:00
Ingo Weinhold
d1fe5b98d9 BuildFeature: get rid of hard-coded package versions
... using the new placeholder feature of ExtractBuildFeatureArchives.
2013-07-21 03:13:58 +02:00
Ingo Weinhold
67e84002a1 rule ExtractBuildFeatureArchives: implement placeholders
Add support for placeholders in the attribute values. The values of the
currently supported placeholders depend on the package file name
(package version, actual package and port name, etc.).
2013-07-21 03:12:45 +02:00
Ingo Weinhold
fc8967f1a6 Determine HAIKU_CPU and HAIKU_PACKAGING_ARCH in configure
... instead of in BuildSetup.
2013-07-20 01:01:21 +02:00
Ingo Weinhold
21b3820e86 Add libbsd to cross devel package 2013-07-19 15:14:07 +02:00
Oliver Tappe
4ddd7f8c94 Make public glibc header printf.h usable. 2013-07-17 18:07:56 +02:00
Ingo Weinhold
111204e0d9 build_cross_tools: make the cross compiler more reuse friendly 2013-07-17 01:06:15 +02:00
Ingo Weinhold
579f1dbca9 _G_config.h: don't include <cstddef>
<stddef.h> is just fine and it doesn't break the use of libroot headers
when compiling something with -nostdinc++ (in C++ mode).
Not particularly important, but this gets compiling the libio C++ stuff
when building a native gcc a bit further. It still fails, since our
<printf.h> header is actually not usable (it includes <features.h>,
which is not available in Haiku) -- something we should fix eventually.
2013-07-17 01:06:14 +02:00
Oliver Tappe
983aba2983 Adjust configure script to new version of legacy compiler. 2013-07-15 17:32:44 +02:00
Ingo Weinhold
ebb857698e Update bootstrap image/package
Should have been part of the recent merge.
2013-07-15 16:34:41 +02:00
Ingo Weinhold
03d70b4e58 Add package architecture constant for x86-64 2013-07-13 21:17:27 +02:00
Ingo Weinhold
4ce282c7cc package list: also support package info files 2013-07-13 21:17:27 +02:00
Ingo Weinhold
4e6141b823 package list: add option '-i' to list only the meta info 2013-07-13 16:26:49 +02:00
Ingo Weinhold
ed156ea6c8 package[_repo] list: reduce code duplication
Introduce helper class PackageInfoPrinter that does the printing and is
used by both commands.
2013-07-13 16:26:48 +02:00
Ingo Weinhold
916e7e75a3 Add debug info packages to HaikuPorts repository 2013-07-12 13:28:17 +02:00
Ingo Weinhold
38f07871ce rule AddRepositoryPackages: add debugInfoPackage parameter
It works just like the sourcePackages parameter.
2013-07-12 13:27:56 +02:00
Ingo Weinhold
4387d6b33f Merge remote-tracking branch 'remotes/haiku/master' into package-management 2013-07-11 18:09:03 +02:00
Ingo Weinhold
02b151d3e3 MultiAddressSpaceLocker::AddAreaCacheAndLock(): race condition
* Add a VMArea* version of AddArea().
* AddAreaCacheAndLock(): Use the new AddArea() version. This not only
  saves the ID hash table lookup, but also fixes a race condition with
  delete_area(). delete_area() removes the area from the hash before
  removing it from its cache, so iterating through the cache's areas
  can turn up an area that no longer is in the hash. In that case we
  would fail immediately. The new AddArea() won't fail in this
  situation, though.

Fixes #9686: vm_copy_area() could fail for the "commpage" area. That's
an area all teams share, so any team terminating while another one was
fork()ing could trigger it.
2013-07-11 17:56:26 +02:00
Ingo Weinhold
7bea0205ed vm_page_allocate_page_run(): fix debug output 2013-07-11 17:56:20 +02:00
Ingo Weinhold
c53508b730 kernel tracing: implement fallback for meta data allocation
We the meta data area couldn't be allocated in any of the supported
(reattachable) places, just use a static allocation. The tracing feature
wouldn't be available at all in such a case.
2013-07-11 17:56:13 +02:00
Ingo Weinhold
8a8a325a1e Terminal: work-around missing/out-of-order modifiers events
... more aggressively than before:
* Only use modifiers().
* Before forwarding any relevant event to the active state, first check
  whether the modifiers have changed.

While the issues should really be fixed where they originate (app
server?), this hopefully fixes all situations where the hyperlink mode
gets stuck.
2013-07-11 17:55:36 +02:00
Ingo Weinhold
3e58289628 DownloadLocatedFile: fix use with older wget version
The option "--no-use-server-timestamps" is apparently newer than
Haiku's wget.
2013-07-11 14:21:47 +02:00
Ingo Weinhold
f20d944bea Update packages grep, ncurses, sed, tar 2013-07-11 14:21:46 +02:00
Rene Gollent
8832917f2c Debugger: SourceView: Fix several drawing bugs.
- MarkerView: If the view was resized, and the newly revealed region was
after the last source line, it wouldn't be redrawn properly.
- TextView: Reset low color for painting the region after the
source.  Otherwise, if either the instruction pointer or a breakpoint
were at the last line of the current source, the empty space after would
be filled in that color rather than the background color.
2013-07-11 07:35:06 -04:00
Rene Gollent
8b2fbc4fa0 Debugger: minor tweak.
Also ensure the custom image list controls are appropriately
shown/hidden when enabling the top-level stop on image load setting.
2013-07-10 21:54:12 -04:00
Rene Gollent
94dbabb056 Debugger: Cleanups for BreakConditionConfigWindow.
- When switching between breaking on all images vs a custom list, rather
than enabling/disabling the controls individually, which wasn't
necessarily obvious from a visibility standpoint, simply show/hide the
entire group of controls as needed.
- Update state of add/remove buttons properly.
- Sanitize input for leading/trailing whitespace.
2013-07-10 19:53:18 -04:00
Jérôme Duval
5994a55ab9 PCI: added a HyperTransport mapping info for x86
* fill it with HT MSI mapping capability information.
* enable/disable mapping on the device accordingly in enable_msi(),
disable_msi(), enable_msix(), disable_msix().
* untested. The mapping could instead be enabled/disabled on the HT PCI bus,
aka the parent device of the device passed to enable_msi/disable_msix().
2013-07-10 22:19:30 +02:00
Jérôme Duval
8986cafc46 PCI: added some missing subclasses definitions
* also renamed the HT capability mask
2013-07-10 20:57:06 +02:00
Jérôme Duval
ca5654d898 PCI: added FindHTCapability() for HyperTransport capabilities.
* untested.
* as it's possible to have several HyperTransport capability blocks, the offset parameter
is used as the start pointer for the search in case it's non zero.
2013-07-10 20:21:35 +02:00
Jérôme Duval
7164302bb6 PCI: added definitions for NVM Express storage controller subclass. 2013-07-10 20:21:33 +02:00
Alex Smith
d1a2f6371a sysinfo: Fixed incorrect memory stats on PAE systems.
Memory statistics were calculated as 32-bit values, so they were incorrect
on machines with more than 4GB RAM (and on x86_64).
2013-07-10 14:02:05 +01:00
Rene Gollent
8f5729e1b9 Debugger: ValueLoader: Add TODO note. 2013-07-09 22:01:52 -04:00
Jérôme Duval
25b723638d PCI: the x86 module now exports an MSI-X API. 2013-07-09 23:53:29 +02:00
Jérôme Duval
8cd7d43670 PCI: implemented reading, configuring and enabling MSI-X. 2013-07-09 23:53:28 +02:00