Commit Graph

60126 Commits

Author SHA1 Message Date
Alexander von Gluck IV
4b0251ba5b docker/bootstrap: Improve local code injection
Change-Id: Ib1961d829ef1418a9b64307c73a01bab3520279a
2019-06-19 11:24:18 -05:00
Alexander von Gluck IV
cb343bfe59 nvme: Fix nvme driver build on non-x86
Change-Id: Ia7a1dc56bcec69678e1fc2d8a427c24a32215bb8
2019-06-19 08:58:06 -05:00
Alexander von Gluck IV
81afd20b21 arm/repositories: Add final missing requirements
Change-Id: I7fdc23160719774d8977ae6b5ac4af8a5d0ee358
2019-06-19 08:45:32 -05:00
Alexander von Gluck IV
70ebf78e12 arm/repositories: Add missing ncurses6 package
Change-Id: I6ca29abbcde80bd09db4c1a4808bd71346afd20e
2019-06-19 07:57:37 -05:00
Alexander von Gluck IV
836e51c326 arm/repositories: Update for latest build_packages
* For tracking, there are *mega* hacked together using
  llvm's linker and functionality isn't a sure thing.
* Thanks waddlesplash for the sketchy changes :-)
* Hopefully gets non-bootstrap arm builds working again
  and let us work on the toolchain without blocking arm
  development.

Change-Id: I0617ed83cc757d098e6464222405f75eed91196e
2019-06-18 19:42:16 -05:00
Augustin Cavalier
8c8615a293 libroot/arm: Add generic_stack_trace.
Fixes the link of libroot_debug. Now Haiku ARM bootstrap builds
complete successfully!
2019-06-17 21:07:44 -04:00
Augustin Cavalier
99bcdc503c bootloade/arm: Change a physical address to phys_addr_t.
Fixes a compile error with recent GCC.
2019-06-17 21:07:16 -04:00
Augustin Cavalier
be8d35d2a4 HaikuPortsCross/arm: Fix version of gcc_bootstrap package. 2019-06-17 21:06:50 -04:00
Augustin Cavalier
f1e80d365b libroot: Flesh out glibc floating point support for ARM.
The last time someone touched this directory, there was no floating
point support configured in ARM. Now we are targeting ARMv7a+, which
always has a hard FPU, so we need this now.

With this, a haiku.hpkg can (finally) be built again (at least
under lld, anyway!)
2019-06-17 20:44:56 -04:00
Augustin Cavalier
57e40b4406 Debugger: Use the BVariant default constructor in Token().
The value-based constructor does the same. Fixes an "ambiguous
call" error on ARM builds.
2019-06-17 19:59:40 -04:00
Augustin Cavalier
750161f4c0 ArchitectureRules: Remove -Wcast-align from the default set.
It is incredibly noisy on GCC8, and not really that valuable
for us at present. Individual architectures (SPARC?) can turn
it on if desired.
2019-06-17 19:58:39 -04:00
Augustin Cavalier
c6b9a07f44 ArchitectureRules: Allow overriding HAIKU_LINK.
I am using this to use clang+lld for linking on ARM builds,
which seems to be more tolerant than binutils ld is, and
gets the build a bit farther for now.
2019-06-17 19:57:58 -04:00
Augustin Cavalier
b6b66df0c5 ArchitectureRules: Disable usage of -mapcs-frame on ARM.
It has been long since deprecated by GCC.
2019-06-17 19:57:22 -04:00
Augustin Cavalier
f861a8596a XHCI: Set the ENT bit on the Status stage TRB for Control transfers.
Otherwise, it may deschedule this pipe without evaluating the
Event Data TRB and generating the interrupt. Should fix the
"slowness" issue of #15115.
2019-06-17 19:16:11 -04:00
Augustin Cavalier
4f8124c5e3 USB: Add initialization checks to Pipe usages of Device.
Complements the ones added earlier to the module itself.
Should fix the panic portion of #15115.
2019-06-17 19:14:29 -04:00
Augustin Cavalier
ceec04eaf5 Deskbar: Add a declaration for a constructor to TStartableMenuBar.
Appeases GCC2.
2019-06-17 18:41:37 -04:00
Murai Takashi
a76e1eb3c7 bin/top: Fix -Wformat=
Change-Id: Ie408017684313531f2dc18d9401cd54bb00a7e12
Reviewed-on: https://review.haiku-os.org/c/1515
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Murai Takashi
f5fb43c94f bin/vmstat: Fix -Wformat=
Change-Id: Id0a03d868143880d50c685d830b23017293f3e38
Reviewed-on: https://review.haiku-os.org/c/1518
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Murai Takashi
fe6e591432 bin/mail_utils/spamdbm: Fix -Wformat=
Change-Id: I912a7eac48e6e0343a59821fb1026ef54e6b0d75
Reviewed-on: https://review.haiku-os.org/c/1521
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Murai Takashi
7d633b87d8 bin/mkdos: Fix -Wformat=
Change-Id: I10b44b2a660fb7db930b7d3ec139c9ada71e8109
Reviewed-on: https://review.haiku-os.org/c/1519
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Augustin Cavalier
74c38cab40 BMenuBar & Deskbar: Make the hack to call ShowMenuBar a lot less ugly.
The previous hack, which as the comment (and __MWERKS__) implies
dates all the way back to the Be era, finally broke: int32 is "int"
on non-x86, not "long", and so this generated an undefined symbol
error on ARM.

The best solution seems to be to make StartMenuBar merely protected,
and then make a subclass where it is fully public to call it.
This is a lot less fragile (and much less ugly.)

Change-Id: I0519d0d9eeb1cc4523d0c6dd4fdfe8688ed1092c
Reviewed-on: https://review.haiku-os.org/c/1516
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-17 11:49:48 +00:00
Augustin Cavalier
581a586f95 XHCI: Change ADDR print to PHYSADDR to appease GCC. 2019-06-16 23:08:36 -04:00
Augustin Cavalier
d511533a48 build_cross_tools_gcc4: Keep static libstdc++, but rename it.
The gcc_bootstrap recipe still needs it, it seems.
2019-06-16 20:30:53 -04:00
Augustin Cavalier
6a2133b166 XHCI: Overhaul endpoint ring logic.
The changes in this commit are large but also subtle, so
an explanation of how they came to be seems to make sense:

Earlier today I tried booting Haiku on QEMU under USB3 ... and
discovered that it didn't work, with the "Operation timed out"
message from in usb_disk upon failing a data transfer. Indeed,
turning on tracing showed no event was being posted for the
transfer. So, I downloaded QEMU's source code, turned on XHCI
debugging, and began tracing what was going on.

Eventually I determined by adding more and more printfs into QEMU's
XHCI implementation that what was occuring was that it was evaluating
a Link TRB, hitting an empty TRB, and then deciding that the TD (aka.,
the "run" of TRBs) was not ready to be consumed, and bailing.

In fact, that very condition (a link TRB leading to an empty TRB)
is precisely what _LinkDescriptorForPipe did before this commit.
We allocate only a small (8 before this commit, 16 + 1 after this
commit) TRB ring for each *endpoint*, and larger ones on a per-*transfer*
basis; and just write Link TRBs onto the Endpoint ring pointing to
the transfer TD, and then one at the end of each transfer TD leading
back to the endpoint ring.

The reason this occured inside usb_disk, and not earlier (e.g.
during descriptor fetching), is that QEMU has special logic around
determining transfer lengths of control transfers which made it
not perform the "TRB valid?" check after evaluating the Link TRB.
So, being implementation-defined behavior, I am guessing that
this same problem was also the cause of boot failures on real
hardware.

This also means that the problem was essentially a race condition,
as if we posted another transfer to the ring before it evaluated
the TRB, it would always work.

The solution of course is to put some valid TRB at the end of
every transfer on the Endpoint ring. A "no-op" would have done
the job (well, maybe not, it appears QEMU does not implement "no-op"
TRBs for some reason), but there was another feature of XHCI
that we did not take advantage of: Event Data TRBs. These provide
the "total transferred length" as well as the status, instead of
the "remaining length" of the final TRB.

This of course required refactoring the use of the CHAIN bit
and the IOC bit (namely, more or less all TRBs save the Event Data
get the CHAIN bit set, and none save Event Data get the IOC bit.)

There was also an update to the XHCI spec since I've last committed here,
so the new comments are in reference to the "XHCI 1.2" spec. (I'll
eventually find time to update the old ones.)

Fixes booting from USB3 on QEMU, and most likely also on
bare metal, where it at least got to usb_disk (it does
not seem to fix the case where usb_disk does not even start.) Whew!
2019-06-16 19:46:16 -04:00
Augustin Cavalier
9be728dee0 XHCI: Set the DCS bit in SetTRDequeue.
It is needed here as in ConfigureEndpoint. See inline comment.
This matches FreeBSD's behavior.
2019-06-16 19:46:16 -04:00
Augustin Cavalier
4029b219e9 XHCI: Fix a -Werror=format. 2019-06-16 19:46:16 -04:00
Murai Takashi
e18440dc83 bin/shutdown: Fix -Wformat=
Change-Id: I03d89d576334fbf73134c79f3c6903860a0d447f
Reviewed-on: https://review.haiku-os.org/c/1513
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 22:09:54 +00:00
Murai Takashi
312640b12c bin/version: Fix -Wformat=
Change-Id: I71fd38b6d1bb1782170438b27f66c462dcec0f0b
Reviewed-on: https://review.haiku-os.org/c/1514
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 22:09:37 +00:00
Murai Takashi
6ba31e25d7 bin/screenmode: Fix -Wformat=
Change-Id: Ide67c285a064c8e1111e1522be2946f69a5bcfc6
Reviewed-on: https://review.haiku-os.org/c/1512
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
e98c206263 bin/listres: Fix -Wformat=
Change-Id: Ida7d957c9a1f73dc87b7e0ce488c1c30cb5a95cc
Reviewed-on: https://review.haiku-os.org/c/1511
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
b8a9c31265 bin/listfont: Fix -Wformat=
Change-Id: Ifa451635a6ff3d42b916d7e535b41db347d6d1bf
Reviewed-on: https://review.haiku-os.org/c/1510
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
d8bf363563 bin/listport: Fix -Wformat=
Change-Id: I5d080b7cc176681a2addbb03380bde76bc748173
Reviewed-on: https://review.haiku-os.org/c/1509
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
74b56a20ee bin/lsindex: Fix -Wformat=
Change-Id: Ib95180d64547f728949efa64aed57f63aee57441
Reviewed-on: https://review.haiku-os.org/c/1508
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-16 14:53:11 +00:00
Adrien Destugues
4429c2c891 Terminal: remove fullscreen tooltip
Whenever using Terminal in fullscreen mode, there is a permanently on
tooltip with the shortcut to exit fullscreen mode wherever you leave
your mouse. This is super annoying and as a result I find myself rarely
using fullscreen mode.

Remove the tooltip, and instead add a button to the right of the tab bar
to exit fullscreen mode, as done in WonderBrush and WebPositive.

Change-Id: If42f038da3d644970de6214a31195882d4fc7eee
Reviewed-on: https://review.haiku-os.org/c/1507
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:51:01 +00:00
Adrien Destugues
f74f860085 BitmapButton: move from WebPositive to libshared
Remove a currently unused copy of it from HaikuDepot.

Change-Id: Idb97fae8e7190da6bc1049b3c1f1df929ea91bab
Reviewed-on: https://review.haiku-os.org/c/1506
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:51:01 +00:00
Augustin Cavalier
d689db1448 HaikuPortsCross: Synchronize a few more package versions to haikuports.cross. 2019-06-15 20:25:43 -04:00
Augustin Cavalier
8830782a61 RepositoryRules: Error when the just-built package does not exist.
This will make version mismatches between the bootstrap repository
and the haikuports.cross repository more apparent.
2019-06-15 20:24:12 -04:00
Augustin Cavalier
46bca9bd51 kernel: Make exit() stub truly non-returning. 2019-06-15 19:11:51 -04:00
Augustin Cavalier
db408f1835 docker/bootstrap: Add libncurses-dev, needed by texinfo. 2019-06-15 16:21:25 -04:00
Augustin Cavalier
6a9f74bc4f HaikuPortsCross: Tweak the GCC version following changes. 2019-06-15 15:45:18 -04:00
Augustin Cavalier
9bb9cc8896 build_cross_tools_gcc4: Remove the generated static libstdc++.
We always want to use the shared one from the syslibs package,
never the shared one from this build.

Part of #14842: after this change, the ICU build now fails with
"cannot find libstdc++" instead of an invalid symbol.
2019-06-15 15:42:13 -04:00
Augustin Cavalier
4d0fd41d24 kernel/lock.h: Reorder function declarations so the comment is correct. 2019-06-15 12:14:49 -04:00
Augustin Cavalier
03c14d2989 stdlib.h: Add noreturn attribute to exit and _Exit.
Fixes #15110.
2019-06-15 12:14:06 -04:00
Axel Dörfler
7b1178998d bfs: Fixed missing block allocator uninit in case of error
* If Volume::Mount() failed opening the root node, the Volume would be
  destroyed regardless of the fact that the block allocator was
  initializing the bitmap asynchronously.
* For a proper shutdown, the block allocator needs to be uninitialized
  first.
* This should fix #15015.

Change-Id: Ice520a12c5c58c785f391009327becfb1f284bce
Reviewed-on: https://review.haiku-os.org/c/1501
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-14 15:02:13 +00:00
Adrien Destugues
e5a393474b Add an easy way to test the debug_server crash window.
It's quite annoying to install the new debug_server and test with a
crashing app everytime. So add a DebugWindow app that just shows the
debug window and returns the result.

Change-Id: I7238057a508871ce3fffc493cb73126eb852d99e
Reviewed-on: https://review.haiku-os.org/c/1460
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-08 16:24:17 +00:00
Adrien Destugues
515d86dace debug_server: build a new debug window
Use radio buttons laid out vertically so that locales with long labels
(no short word for "write core file") can still look nice. This is open
for experiment, buttons laid out vertically are another option. At least
now we have a window t work from, as BAlert doesn't cut it here.

While I'm at it, use a ladybug icon for this one, so it's visibly
different from normal application alerts.

Change-Id: I08ba9573f132901484224e107404348e7dca97f4
Reviewed-on: https://review.haiku-os.org/c/1459
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-08 16:24:17 +00:00
Alexander von Gluck IV
1c397f231c rpmalloc: Explicit ptr cast to int32* to quiet down gcc8 errors
Change-Id: I2343a6f2db2f95e33991e16c3a9cbd5445f90790
Reviewed-on: https://review.haiku-os.org/c/1499
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-05 23:11:35 +00:00
kerwizzy
b318ff2a39 Mandelbrot: Fix race conditions and missing initializations.
Change-Id: I64e7bb68631320a7f8d80be25b4011a0332e0348
Reviewed-on: https://review.haiku-os.org/c/1480
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-05 23:10:51 +00:00
Alexander von Gluck IV
004b64201f HaikuPortsCross/ppc: Add missing revision to bootstrap package
Change-Id: I4c49429e9c1ccf14d7dcd394cdb5a29b1d097491
2019-06-03 10:07:24 -05:00
Alexander von Gluck IV
9a0d30e76d HaikuPortsCross: Update bootstrap to gcc 8
Change-Id: I45bb16971f84978eb1e97dd491c0c2d7ab90444e
2019-06-03 10:04:52 -05:00