Compare commits

..
Author SHA1 Message Date
Martijn Braam 2ef1e43baa linux-postmarketos-stable: add steamlink support 2019-08-01 22:51:43 +02:00
Martijn Braam b959eceec8 steamlink WIP 2019-08-01 22:51:20 +02:00
Bhushan Shah eb154010c6 main/postmarketos-ui-plasma-mobile: add dep to kirigami-gallery (!531)
kirigami-gallery is not meant for users, but it is good testing
application and is even part of reference image provided by Plasma
Mobile team.

For now we are not targetting plasma-mobile towards users anyway and
only developers, so include kirigami-gallery in main UI package.
2019-07-30 22:44:05 +02:00
Bhushan Shah c8c69dbcbd kde/plasma-phone-components: update to latest upstream version (!531)
As well as add workaround for broken fonts on some devices like pinepad
and pinephone with lima.
2019-07-30 22:43:59 +02:00
Daniele Debernardi 00030d793f main/postmarketos-splash: implement landscape mode (!530)
This actually implement the creation of the images in landscape mode.
The parameter was already present, just the implementation was missing.
2019-07-30 21:02:47 +02:00
Dolphin von Chips 18d199c498 samsung-j1mini3g: new device (Samsung Galaxy J1 mini) (!533)
[ci:skip-build]: already built successfully in CI
2019-07-30 20:45:19 +02:00
dzmitry c6896dd46a main/dtbtool-exynos: new aport (!527)
This is a solution to integrate dtb.img building into Exynos kernel
sources.
2019-07-30 20:09:32 +02:00
rahmanshaber b7a9cb7439 coreapps, main/libarchive-qt: remove (!532)
Upstreamed to Alpine.
2019-07-30 19:55:52 +02:00
Daniele Debernardi d913c6e796 linux-postmarketos-allwinner: enable framebuffer (!529)
[ci:skip-build]
2019-07-29 23:26:06 +02:00
Oliver Smith fe8858d59e cross/musl-*: update to 1.1.23-r1 2019-07-28 10:49:21 +02:00
Oliver Smith 84492befc5 temp/mesa-git: build for arm, not for all arches
Avoid build failure for x86:

>>> mesa-git-glapi*: Running postcheck for mesa-git-glapi
>>> ERROR: mesa-git-glapi*: Found textrels:
TEXTREL  /home/pmos/build/pkg/mesa-git-glapi/usr/lib/libglapi.so.0.0.0

The package is only used for armhf, armv7, aarch64 devices currently, so
change the arch line in the APKBUILD accordingly.

$ cd device
$ for i in $(git grep mesa-git | cut -d/ -f1); do grep -H arch $i/deviceinfo; done
device-asus-flo/deviceinfo:deviceinfo_arch="armhf"
device-lg-hammerhead/deviceinfo:deviceinfo_arch="armv7"
device-pine-a64lts/deviceinfo:deviceinfo_arch="aarch64"
device-pine-dontbeevil/deviceinfo:deviceinfo_arch="aarch64"
device-sony-castor-windy/deviceinfo:deviceinfo_arch="armhf"
device-sony-sirius/deviceinfo:deviceinfo_arch="armv7"

[ci:skip-vercheck]: only changed arch line
Fixes: ce7e4d79e1 ("temp/mesa-git: new aport (!524)")
2019-07-28 10:48:51 +02:00
Bart Ribbers bb00212b21 device-sony-sirius: use mesa-git (!524) 2019-07-27 20:38:22 +02:00
Bart Ribbers 02bc1dd064 device-sony-castor-windy: use mesa-git (!524) 2019-07-27 20:37:34 +02:00
Bart Ribbers 3b4d876521 device-asus-flo: use mesa-git (!524) 2019-07-27 20:36:04 +02:00
Bart Ribbers b11d96dcbb device-lg-hammerhead: use mesa-git (!524) 2019-07-27 20:35:27 +02:00
Bart Ribbers 28a04f8ffd temp/mesa-freedreno: remove in favor of mesa-git (!524) 2019-07-27 20:34:33 +02:00
Bart Ribbers 944460fa76 device-pine-dontbeevil: use mesa-git (!524) 2019-07-27 20:34:27 +02:00
Bart Ribbers a8d7b80444 device-pine-a64lts: use mesa-git (!524) 2019-07-27 20:33:38 +02:00
Bart Ribbers 7686e15af4 temp/mesa: remove in favor of mesa-git (!524) 2019-07-27 18:21:18 +02:00
Bart Ribbers ce7e4d79e1 temp/mesa-git: new aport (!524)
This package will track the latest Git master for devices that require bleeding edge changes. Should be kept up-to-date fairly often
2019-07-27 18:21:16 +02:00
Martijn Braam 9fde750935 main/linux-postmarketos-allwinner: update to 5.3.x-git (!526)
[ci:skip-build]
2019-07-27 17:44:21 +02:00
Daniele Debernardi 37d3af4d6e firmware-samsung-maguro: update arch to armv7 (!525) 2019-07-26 01:18:32 +02:00
Bart Ribbers 9f82baae4e phosh/virtboard: upgrade to latest commit (!523) 2019-07-25 21:31:35 +02:00
Bart Ribbers d828724fad phosh/squeekboard: new aport (!523)
Squeekboard is going to replace virtboard in Phosh. However, it requires
Rust which hasn't yet been packaged on Alpine Linux for aarch64. So for
now, keep virtboard as the default (it still works fine) and update it
to the latest commit (see follow-up patch), but also introduce
squeekboard so we can test it and eventually enabled it for aarch64 and
replace virtboard.
2019-07-25 21:31:35 +02:00
rahmanshaber 90e8979961 main/qt5ct: update to 0.39 (!499)
[ci:skip-build]: already built successfuly in CI
2019-07-25 21:15:12 +02:00
Daniele Debernardi ceb3c2a2eb temp/xkeyboard-config: Fork to add N900 extended layout (!507) 2019-07-25 20:59:48 +02:00
Luca Weiss e8482cfb39 device/linux-htc-vision: fix wrong source handling (!516)
Also fix a few spaces->tabs issues while we're at it.

Should result in the exact same commit being download as before, the
checksum is different because GitHub puts the commit instead of the
branch name into the archive.

[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
2019-07-25 20:50:47 +02:00
Luca Weiss 7699f8d537 main/postmarketos-mkinitfs: set pmOS-specific firmware path (!515)
Currently we rely on the fact, that the kernel asks user space to load
the firmware for it, so we can use the /lib/firmware/postmarketos
directory for firmware.

As the kernel has support for loading the firmware itself since
v3.7, and the parameter for adding an additional path to the search
paths was added with v3.10, we can use that to not rely on
CONFIG_FW_LOADER_USER_HELPER being set.
2019-07-25 20:30:04 +02:00
Oliver Smith cb9313a27c cross/busybox-static-*: update to 1.31.0-r0 2019-07-25 20:28:52 +02:00
Luca Weiss 8bd5c997b8 temp/libdrm: remove (!522) 2019-07-24 11:18:57 +02:00
Tito Ragusa 2f2e179132 firmware-oppo-find-7a: add more firmware blobs (!512) 2019-07-24 00:33:16 +02:00
Brian Masney 0e8cb764e1 main/linux-postmarketos-qcom: update to kernel v5.2 (!514)
Update to the 5.2 kernel plus my patches for the Nexus 5 display that
will also work for other msm8974-based systems:
https://github.com/masneyb/linux/commits/v5.2-nexus5-display. There's
currently 25 extra patches on top of 5.2:

- The first 9 patches after the 5.2 commit are currently in 5.3rc1 and
  were back ported to 5.2. All of these patches have 'Commit XXX
  upstream.' messages in the commit message.
- The next 9 patches are for ocmem support and some msm display fixes. I
  expect that these will be merged upstream for 5.4rc1.
- The remaining 7 patches are still not suitable to send upstream.

[ci:skip-build]: already built successfully in CI
2019-07-24 00:22:12 +02:00
Luca Weiss 73f6cfa0aa modem/ofono: update to 1.29 with qmi voicecall support (!511)
Tested on the pinephone devkit.

[ci:skip-build]: already built successfully in CI
2019-07-24 00:02:19 +02:00
Oliver Smith 7d8ef5a2c0 unity8/mir: bump pkgrel after soname bump
Increase 'mir' pkgrel (2 -> 3), missing depend(s): so:libnettle.so.6

[ci:skip-build]: won't finish in time
2019-07-23 23:13:31 +02:00
Oliver Smith 09ad0c8115 temp/qemu: bump pkgrel after soname bump
Increase 'qemu' pkgrel (0 -> 1), missing depend(s): so:libnettle.so.6
2019-07-23 23:13:31 +02:00
Luca Weiss be9615a763 temp/mesa-freedreno: fix mesa-freedreno-gl conflict (!520) 2019-07-23 21:04:32 +02:00
Martijn Braam 33b8a219f5 postmarketos-ui-phosh: enable armv7 2019-07-23 16:37:59 +02:00
Luca Weiss 063330935b main/linux-postmarketos-allwinner: update kernel & build more modules (!508)
[ci:skip-build]
2019-07-18 23:19:37 +02:00
Luca Weiss 3d57e0b688 main/linux-postmarketos-allwinner: fix indentation (!508) 2019-07-18 23:19:22 +02:00
Martijn Braam 057c14ad62 postmarketos-ui-phosh: set pmos wallpaper (!503)
[ci:skip-build]: already built successfully in CI
2019-07-18 23:01:11 +02:00
Bart Ribbers 2384f85b13 phosh/phosh: update to latest commit (!505)
This should make the wallpaper render correctly.

[ci:skip-build]: already built successfully in CI
2019-07-18 22:42:24 +02:00
Bart Ribbers 3555805692 kde/plasma-camera: update and add missing depends (!504)
[ci:skip-build]: already built successfully in CI
2019-07-18 22:32:47 +02:00
Bart Ribbers 2ae9b087e6 kde/ktp-common-internals: update to 19.04.3 (!501)
[ci:skip-build]: already built successfully in CI
2019-07-18 22:12:48 +02:00
Bart Ribbers e10b7c2929 kde/spacebar: update and add missing runtime deps (!501) 2019-07-18 22:12:09 +02:00
Danct12 5eb0b74350 asus-z00vd: use armv7 (!498)
[ci:skip-build]: already built successfully in CI

Signed-off-by: Danct12 <danct12@disroot.org>
2019-07-18 22:00:47 +02:00
Oliver Smith bf4b8a9051 cross/musl-*: update to 1.1.23-r0
Latest version from Alpine. I've checked that we can still compile
packages for armhf after this update, in other words that we don't get
a regression related to the triplet change like in #295.
2019-07-18 21:59:24 +02:00
Bhushan Shah 9e3fa6e6f7 temp/qt5-qtwayland: apply patches suggested by upstream (!509)
These patches are intended to make things work nicely due to regressions
introduced in qt5.12.4. I've tested them in QEMU and they seem to work
fine.

See: https://mail.kde.org/pipermail/kde-distro-packagers/2019-July/000379.html
2019-07-18 17:58:25 +05:30
Bart Ribbers 326dc7b8b5 phosh/phoc: enable for all architectures and update to latest commit (!497) 2019-07-17 01:15:30 +02:00
Federico Amedeo Izzo 3dd4d8f220 samsung-zanin: new device (Samsung Galaxy Chat) (!496)
The phone boots pmOS, and the basic functionalities are ready.

[ci:skip-build]: already built successfully in CI
2019-07-17 00:39:03 +02:00
Sergey Larin 5ccbcf999d samsung-i927: update kernel to 5.2.1, more updates (!452)
- OTG support
- Charger
- WiFi 5GHz
- RTC bug "fixed" (always-on interrupt - made device overheat!)
- Kernel version bumped to 5.2.1
- Memory timings
- New WM8994 codec board driver (fixes suspend/resume)
- Camera's regulator supported now (saves power at least!)
- Updated panel driver (still not in mainline, idk why)
- MHL support in kernel (fixes boot times and screen, currently disabled in X,
  not tested)
- Other minor kernel chagnes

[ci:skip-build]: already built successfully in CI
2019-07-17 00:15:26 +02:00
Bart Ribbers 40b98f4ca8 temp/wlroots: remove, superseded by Phoc (!495)
[ci:skip-build]: ollieparanoid will make sure this builds locally before
                 merging
2019-07-16 23:57:08 +02:00
Bart Ribbers ccfa6e2d8e phosh/phosh: update to 0.3.0 (!495) 2019-07-16 23:48:20 +02:00
Bart Ribbers 96d2742377 phosh/phoc: new aport (!495) 2019-07-16 23:48:20 +02:00
Danct12 861fb8e553 device-xiaomi-santoni: fix post-install script (!420)
[ci:skip-build]: already built successfully in CI

Signed-off-by: Danct12 <danct12@disroot.org>
2019-07-16 23:08:29 +02:00
Asriel Dreemurr cec2a9de58 linux-xiaomi-santoni: add hci smd for bluetooth support (!420)
Signed-off-by: Danct12 <danct12@disroot.org>
2019-07-16 23:08:24 +02:00
Danct12 4499ff72c7 device-xiaomi-santoni: add pulseaudio support through hybris (!420)
Signed-off-by: Danct12 <danct12@disroot.org>
2019-07-16 23:08:18 +02:00
Asriel Dreemurr 19c1762248 device-xiaomi-santoni: remove asound.conf (!420)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-07-16 23:08:14 +02:00
Asriel Dreemurr 3d513070ad device-xiaomi-santoni: move alsa ucm files and sound dependencies to nonfree_firmware (!420)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-07-16 23:08:02 +02:00
Asriel Dreemurr 0ea7b9a70a xiaomi-santoni: tweak kernel config for hybris-boot, add X11 config for xf86-video-hwcomposer (!420)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-07-16 23:07:33 +02:00
Danct12 206b763d56 device-xiaomi-santoni: add contributors and maintainers (!420)
Signed-off-by: Danct12 <danct12@disroot.org>
2019-07-16 23:07:22 +02:00
Danct12 c4110b60a7 xiaomi-santoni: workaround for long boot times with hybris userland (!420)
Signed-off-by: Danct12 <danct12@disroot.org>
2019-07-16 23:07:13 +02:00
Asriel Dreemurr e3921e5d5e xiaomi-santoni: add android adaptation (!420)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-07-16 23:07:10 +02:00
Daniele Debernardi f5ef288dce postmarketos-mkinitfs-hook-debug-shell: add reboot-mode (!492) 2019-07-13 14:05:00 +02:00
Konrad Dybcio 7fcb579030 postmarketos-ui-phosh: Mention support for aarch64 (!491)
Related: 2bff253d7d ("phosh/phosh: enabled aarch64 (!414)")
2019-07-13 13:53:53 +02:00
Oliver Smith 54825690b0 gitlab-ci.yml: use alpine:latest, not :3.8 (!490) 2019-07-13 13:34:38 +02:00
Oliver Smith 5406010320 nokia-900: fix wallpaper in i3wm (!473)
The wallpaper has been broken, since we intentionally removed the N900
specific wallpaper from the postmarketos-wallpapers package. Just use
the default wallpaper, and tell feh to scale it nicely.
2019-07-11 19:38:56 +02:00
hacker12455 f1339bdba1 samsung-lt023g: fix WiFi (!489)
[ci:skip-build]: already built successfully in CI
2019-07-11 18:37:04 +02:00
Martijn Braam 8ae04602a9 temp/gnome-session: remove, upstreamed (!488) 2019-07-11 18:22:53 +02:00
Martijn Braam fd34a04679 temp/gnome-shell: remove, upstreamed (!488) 2019-07-11 18:22:35 +02:00
Nikita Travkin 536da1c1a7 Add device: wileyfox-crackling (!485)
Initial support for Wileyfox Swift
- System boots
- USB networking works
- Display and touch works
- Weston, XFCE4, Plasma Mobile works with software rendering
- fb.modes added but charging-sdl still don't work
- System allways reports charge level at zero

[ci:skip-build]: already built successfully in CI
2019-07-11 17:59:27 +02:00
Bart Ribbers 05aa9bed4d main/postmarketos-ui-plasma-mobile: new depends (!459)
I've ordered the $depends list alphabetically for better readability,
and added the bluedevil (for Bluetooth) kwallet-pam and
xdg-desktop-portal-kde runtime dependencies.

[ci:skip-build]: already built successfully in CI
2019-07-10 00:05:56 +02:00
Alexey Min e38f1de121 hybris/pulseaudio-modules-droid: new package (!448)
Set of pulseaudio modules that use Android audio HAL
(via libhybris) to talk to sound cards.

[ci:skip-build]: already built successfully in CI
2019-07-09 22:49:03 +02:00
Alexey Min 83ef586986 hybris/pulsecore-private-headers: new package (!448)
Essentially needed for packaging pulseaudio-modules-droid.

This package is basically a set of headers taken from
original pulseaudio tarball and one hand-made pkg-config file.

All versions listed in this package and in pulsecore.pc should
match pulseaudio's MAJOR.MINOR version, otherwise everything
will break. All library paths listed in pulsecore.pc should
match pulseaudio paths, too. Because library itself is built
and installed by pulseaudio package (pulseaudio-dev).

For motivation behind this see:
https://git.sailfishos.org/mer-core/pulseaudio/commit/9316d7ba941516cabfc080a0099fad80a231582d

TL;DR pulsecore is an internal pulseaudio library needed to build
pulseaudio's own modules, not meant to be used py pulseaudio clients.
It is not exported since pulseaudio-8. We fake an "export"
of this library, since we need it to build an out-of-tree module.
2019-07-09 22:48:52 +02:00
Konrad Dybcio 3003f25696 sony-suzu: new device (Sony Xperia X) (!482)
Also known as: SoMC Loire Suzu RoW

[ci:skip-build]: already built successfully in CI
2019-07-09 22:20:33 +02:00
Martijn Braam 00ed89baff main/postmarketos-ui-phosh: enabled aarch64 (!414)
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
2019-07-09 21:53:42 +02:00
Martijn Braam 2bff253d7d phosh/phosh: enabled aarch64 (!414) 2019-07-09 21:52:41 +02:00
Martijn Braam a4e0754cd8 temp/wlroots: pulled upsteam changes (!414) 2019-07-09 21:52:41 +02:00
Martijn Braam 4df7d8011d temp/gnome-shell: fork to enable aarch64 (!414) 2019-07-09 21:52:51 +02:00
Martijn Braam a238ca4ff1 temp/gnome-session: fork to enable aarch64 (!414) 2019-07-09 21:52:41 +02:00
Luiz Silva 5b77b0ff25 lg-p700: new device (LG Optimus L7) (!471)
[ci:skip-build]: already built successfully in CI
2019-07-09 21:45:31 +02:00
Alexey Min 2fb18b5d30 samsung-klte: backport memfd_create() syscall (!479)
This brings in several patches needed to add support for a
memfd_create() syscall into kernel version 3.4 from kernel
version 3.17. This is required for running lxc >= 3.1.0-r1
with security patch that fixes CVE-2019-5736.

In short, security issue was: in a privileged container root
process could overwrite lxc-start executable by opening its
file descriptor and rewriting executable contents. This is
where memfd comes to help: you can create an in-memory file,
copy your executable there, and place a set of SEALS to protect
it from modifying at a deep level. Then you fexecve() that fd
and you're safe.

For example, pulseaudio also can benefit from having
memfd_create() implemented.

This backports the following commits from upstream linux:
 - dd37978c50bc8b354e5c4633f69387f16572fdac: cache the value
   of file_inode() in struct file

   commit from linux-3.10 to have an f_inode member inside
   struct file and a helper function file_inode() that is
   used in some of the following commits

 - 40e041a2c858b3caefc757e26cb85bfceae5062b shm: add sealing API

   from 3.17: security measure called SEALS, that you can put
   on memfd file to restrict operations on it

 - 9183df25fe7b194563db3fec6dc3202a5855839c shm: add memfd_create()
   syscall

   also from 3.17

 - 503e6636b6f96056210062be703356f4253b6db9 asm-generic: add
   memfd_create system call to unistd.h

 - e57e41931134e09fc6c03c8d4eb19d516cc6e59b ARM: wire up
   memfd_create syscall

The last two are needed to make the syscall visible/usable from
userspace, one in generic context, other for ARM arch.

The test program (https://github.com/minlexx/test_memfd/) was
written to verify that this works.

[ci:skip-build]: already built successfully in CI
2019-07-09 21:17:33 +02:00
Alexander Polynomdivision 17ab67d2b6 samsung-herolte: fix indent in nonfree_firmware (!478)
As spaces instead of tabs were used, pmbootstrap would error out when
using `samsung-herolte` during init.
2019-07-06 09:13:19 +02:00
Bart Ribbers 8f6a331ffd kde/calindori: update to first 1.0 release (!475) 2019-07-06 03:39:15 +02:00
Luca Weiss 7c079a69fd QEMU: fix case sensitivity, unify device names (!480)
[ci:skip-vercheck]
2019-07-06 03:30:37 +02:00
Oliver Smith f90149a024 osk-sdl: update to 0.53
As Idan Horo wrote in osk-sdl!82:
"Newer versions of cryptsetup automatically encrypt with LUKS v2.
osk-sdl assumes all partitions are encrytped with v1 and as such fails.
By just changing the encryption type to NULL cryptsetup automatically
detects and chooses the correct LUKS version. Tested on xiaomi-kenzo."
2019-07-06 03:24:53 +02:00
Oliver Smith 3bb5504643 unity8/mir: rebuild against protobuf 3.8.0 (!481)
Add two patches that make it build against Alpine's current versions of
protobuf and libdrm.

[ci:skip-build]: I've manually verified that this builds.
2019-07-06 03:18:49 +02:00
Oliver Smith 975640fc7b main/pmbootstrap: update to 1.7.0 2019-07-05 21:20:57 +02:00
Oliver Smith bc17119682 pmaports.cfg: set min pmbootstrap version: 1.7.0
Require latest pmbootstrap version, because it supports depends in
depends in the APKBUILD parser, and is able to properly test
UEVENT_HELPER, LBDAP kconfig options (they must depend on the kernel
version).
2019-07-05 21:20:57 +02:00
Federico Amedeo Izzo 9620435c92 samsung-ariesve: new device (Samsung Galaxy S Plus) (!474)
Also known as gt-i9001.

[ci:skip-build]: already built successfully in CI
2019-07-03 21:10:28 +02:00
hacker12455 e2e4bb3df2 samsung-lt023g: Enable WiFi, switch arch to armv7 (!470)
[ci:skip-build]: already ran successfully in CI
2019-06-30 19:13:31 +02:00
Oliver Smith 24d0ce16e5 asus-flo, sony-castor-windy: use mesa-freedreno (!450)
Let all remaining devices that depend on mesa-dri-freedreno use the new
mesa-freedreno package.

[ci:skip-build]: won't finish in time. I'm verifying that the whole
                 merge request builds before merging.
2019-06-30 18:54:08 +02:00
Martijn Braam 624c965b41 lg-hammerhead: mesa-freedreno, serial tty0, fix X (!450)
Use the new mesa-freedreno package. Configure inittab to start a
terminal on ttyMSM0 (serial). Remove fbdev from xorg.conf and set
SWCursor on.

Based on patches from Brian Masney.
2019-06-30 18:54:08 +02:00
Oliver Smith 71a9fec125 sony-sirius: use mesa-freedreno, change to armv7 (!450)
Switch to armv7, because we're not building linux-postmarketos-qcom for
armhf anymore.
2019-06-30 18:54:08 +02:00
Oliver Smith 7e4b70ddf4 main/linux-postmarketos-qcom: update: 5.2_rc3, disable armhf (!450)
Kernel patches by Brian Masney, this pmaports.git patch is based on work
by Brian and Martijn Braam.
2019-06-30 18:54:08 +02:00
Oliver Smith a4f35cb7d6 temp/mesa-freedreno: current mesa master (!450)
Freedreno is broken in latest mesa stable, but it is fixed in current
master. Let's use master for now.

Based on Brian Masney's patch, but with a hardcoded commit and a
separate package.
2019-06-30 18:54:02 +02:00
Oliver Smith ec14336927 teclast-x80pro: enable CONFIG_UEVENT_HELPER (!472)
[ci:skip-build]: will not finish in time. I've built linux-asus-me176c
                 and it builds fine. I'm assuming that
                 linux-teclast-x80pro will also build, since it is
                 pretty much the vanilla kernel.
2019-06-30 18:46:37 +02:00
Oliver Smith 58bb1ab8f3 asus-me176c: enable CONFIG_UEVENT_HELPER (!472)
Make busybox mdev work in the postmarketOS initramfs.
2019-06-30 17:10:31 +02:00
Martijn Braam 74ac6819c9 main/postmarketos-mkinitfs: verbose network log (!468)
Make the initfs show better errors in the network setup part.
2019-06-30 11:49:03 +02:00
Oliver Smith 17292f4f5e main/postmarketos-base: fix wpa_supplicant config (!365)
Fix wifi on htc-ace by properly setting nl80211 before wext.

/etc/conf.d/wpa_supplicant is supposed to get modified twice with the
current code in the post-install file. The first one was patched
recently to set nl80211 before wext, but that change does not work in
practice, for two reasons:

1. The code block does not even get executed, because apk reports that
   /etc/conf.d/wpa_supplicant was already modified (by a package that
   was installed before, in its post-install script? I could not find
   out which one does that though).
2. Even if it worked, the second code block would revert the change and
   put wext before nl80211 again.

Fix this by removing the first code block, and changing the order in the
second one. Make it easier to catch such errors in the future, by
printing, which files get modified, or get skipped. Set "#!/bin/sh -e",
so the script can not fail silently.

When doing pmbootstrap -y zap and then pmbootstrap install, the output
looks like this:

(141/151) Installing postmarketos-base (3-r26)
Executing postmarketos-base-3-r26.post-install
- Modifying: /etc/fstab
- Modifying: /etc/issue
- Modifying: /etc/motd
- Modifying: /etc/conf.d/syslog
- Modifying: /etc/conf.d/wpa_supplicant
- Modifying: /etc/sudoers
- Modifying: /etc/chrony/chrony.conf
2019-06-30 02:00:08 +02:00
Luca Weiss 82b143f3f0 Fix spelling mistakes (!466)
codespell --skip="./.git,*.patch,*.diff,config-*.*"

[ci:skip-build]
[ci:skip-vercheck]
2019-06-30 01:40:02 +02:00
Tito Ragusa 745cefca8a maemo/hildon-theme-alpha: Cleanup debian files (!469) 2019-06-29 16:15:38 +02:00
Bart Ribbers 0cebe2a3a2 main/libphonenumber: remove, upstreamed (!467) 2019-06-27 11:05:01 +02:00
Bart Ribbers fb05a9e586 temp/kwin: remove (!467)
The patch we forked it for is in KWin 5.16.2 which is in Alpine Linux
2019-06-27 11:04:20 +02:00
Kenneth Endfinger 258e92e942 google-glass: Add non-free firmware and initialize the display (!462)
[ci:skip-build]: already built successfully in CI
2019-06-26 23:56:33 +02:00
Idan Horo 624e777a6f xiaomi-kenzo: new device (Xiaomi Redmi Note 3) (!461)
Boots succsfully, SSH over USB works fine, display and touch screen
works fine. WiFi is also confirmed to be working.

[ci:skip-build]: already built successfully in CI
2019-06-26 23:26:14 +02:00
Bart Ribbers 8220ed31e6 main/postmarketos-ui-plasma-mobile: add lightdm-openrc to depends (!460)
Fixes post-install script.
2019-06-26 22:50:37 +02:00
Bart Ribbers 07a382a8b7 kde/sink: remove (!460) 2019-06-26 22:50:37 +02:00
Bart Ribbers 1f9f9f628c kde/kpkpass: remove (!460) 2019-06-26 22:50:37 +02:00
Bart Ribbers f8f2ff56e2 kde/kimap2: remove (!460) 2019-06-26 22:50:37 +02:00
Bart Ribbers 7688f6dfa1 kde/kdav2: remove (!460) 2019-06-26 22:50:37 +02:00
Bart Ribbers 02f09d66e2 kde/kasync: remove (!460) 2019-06-26 22:50:37 +02:00
Bart Ribbers df665a4980 kde/kube: remove in favor of trojita (!460) 2019-06-26 22:50:31 +02:00
Luca Weiss a66fed62cc Format **/*.c with clang-format (!465)
[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
2019-06-26 22:36:24 +02:00
Luca Weiss 90e2cc7eff CI: check coding style of C code (!465) 2019-06-26 22:36:20 +02:00
Luca Weiss 4553bd705a Add .clang-format file (!465) 2019-06-26 22:36:15 +02:00
Daniel Michelin 0a634a4932 CI: check_mr_settings: disallow squashing commits (!464) 2019-06-26 21:55:47 +02:00
Daniele Debernardi fb477bab21 samsung-maguro: migrate to armv7 architecture (!455)
[ci:skip-build]: already built successfully in CI
2019-06-24 20:44:08 +00:00
Bart Ribbers 4f3360c051 main/vvave: update and move to newer sources (!454)
[ci:skip-build]: already built successfully in CI
2019-06-24 22:09:09 +02:00
Bart Ribbers 377426d090 main/pix: update and move to newer sources (!454) 2019-06-24 22:08:57 +02:00
Bart Ribbers 359991bcab main/nota: update and move to newer sources (!454) 2019-06-24 22:08:57 +02:00
Bart Ribbers c72e009383 main/index: update and move to newer sources (!454) 2019-06-24 22:08:57 +02:00
Bart Ribbers 8cae9e1b2b main/buho: update and move to newer sources (!454) 2019-06-24 22:08:57 +02:00
Bart Ribbers 98b21a669b main/mauikit: update and move to newer sources (!454) 2019-06-24 22:08:53 +02:00
Oliver Smith 7fb32b86a4 main/libofono-qt: disable docs
Documentation depends on texlive, which is currently not available in
Alpine edge x86.
2019-06-24 21:59:45 +02:00
Oliver Smith 020dd0e9f2 main/libofono-qt: remove unused patch files
[ci:skip-vercheck]
2019-06-24 21:58:43 +02:00
Oliver Smith 069fabbd3d main/telepathy-ofono: bump pkgrel
missing depend(s): so:libmission-control-plugins.so.0, so:libofono-qt.so.1
2019-06-24 21:25:06 +02:00
Daniele Debernardi 375e98b950 main/reboot-mode: new aport (!442)
New tool to reboot the device to a specific mode.
2019-06-24 21:09:47 +02:00
Bart Ribbers af263907ca main/libofono-qt: rename from ofono-qt and move to newer sources (!408)
[ci:skip-vercheck] libofono-qt switched to newer sources but uses a
different version numbering system
2019-06-24 11:06:44 +02:00
Bart Ribbers f0a25157c2 kde/plasma-phone-components: enable calls (!408) 2019-06-24 11:06:44 +02:00
Bart Ribbers 16ae92881b kde/kdeconnect: remove, upstreamed (!453) 2019-06-24 11:03:08 +02:00
Bart Ribbers 744ec73423 kde/calendarsupport: remove, upstreamed (!453) 2019-06-24 11:03:07 +02:00
Bart Ribbers cf61e0aea3 kde/akonadi-calendar: remove, upstreamed (!453) 2019-06-24 11:03:06 +02:00
Bart Ribbers 327a1ed9bb kde/kcalutils: remove, upstreamed (!453) 2019-06-24 11:03:05 +02:00
Bart Ribbers 77b9ea027f kde/kmailtransport: remove, upstreamed (!453) 2019-06-24 11:03:05 +02:00
Bart Ribbers a45391cd51 kde/libkgapi: remove, upstreamed (!453) 2019-06-24 11:03:04 +02:00
Bart Ribbers 0e0744b923 kde/ksmtp: remove, upstreamed (!453) 2019-06-24 11:03:03 +02:00
Bart Ribbers 5f8b3e4d55 kde/kidentitymanagement: remove, upstreamed (!453) 2019-06-24 11:03:02 +02:00
Bart Ribbers 4e47e256d9 kde/marble: remove, upstreamed (!453) 2019-06-24 11:02:42 +02:00
Bart Ribbers 86b267ee8a temp/kwin: new aport to fix Plasma Mobile issue (!456)
[ci:skip-build] Won't succeed in time
2019-06-23 11:57:54 +02:00
Bart Ribbers 95592e8fb9 main/postmarketos-ui-plasma-mobile: fix dependency name (!451) 2019-06-20 15:30:04 +02:00
Oliver Smith 6b142e0139 temp/sonnet: remove
Binary package is available in Alpine again.
2019-06-20 14:07:29 +02:00
Bart Ribbers ffcbe7eda3 kde/kdepim-apps-libs: remove, upstreamed (!449)
[ci:skip-build]: already built successfully in CI
2019-06-20 13:54:32 +02:00
Bart Ribbers e0779c1194 kde/pimcommon: remove, upstreamed (!449) 2019-06-20 13:44:11 +02:00
Bart Ribbers 74c9fe728d kde/kimap: remove, upstreamed (!449) 2019-06-20 13:43:59 +02:00
Bart Ribbers 8f86bc7673 kde/libkleo: remove, upstreamed (!449) 2019-06-20 13:43:45 +02:00
Bart Ribbers 1f3da92acf kde/libkdepim: remove, upstreamed (!449) 2019-06-20 13:43:25 +02:00
Bart Ribbers e104adce0e kde/kldap: remove, upstreamed (!449) 2019-06-20 13:43:17 +02:00
Bart Ribbers d755ae15b4 kde/akonadi-search: remove, upstreamed (!449) 2019-06-20 13:43:03 +02:00
Bart Ribbers bb157a482e kde/akonadi-mime: remove, upstreamed (!449) 2019-06-20 13:42:55 +02:00
Bart Ribbers 32a0ff7222 kde/kcalcore: remove, upstreamed (!449) 2019-06-20 13:42:42 +02:00
Bart Ribbers d9ba1b6da9 kde/akonadi-contacts: remove, upstreamed (!449) 2019-06-20 13:42:32 +02:00
Bart Ribbers 81ff448084 kde/kmime: remove, upstreamed (!449) 2019-06-20 13:42:19 +02:00
Bart Ribbers e204a8076e kde/kcontacts: remove, upstreamed (!449) 2019-06-20 13:42:10 +02:00
Bart Ribbers 49ecb02343 kde/kpimtextedit: remove, upstreamed (!449) 2019-06-20 13:42:00 +02:00
Bart Ribbers 9862981c68 kde/akonadi: remove, upstreamed (!449) 2019-06-20 13:41:48 +02:00
Bart Ribbers 624804cbff kde/grantleetheme: remove, upstreamed (!449) 2019-06-20 13:41:38 +02:00
Bart Ribbers b5398b9723 main/grantlee: remove, upstreamed (!449) 2019-06-20 13:41:25 +02:00
Bart Ribbers c2a2670d3d main/postmarketos-ui-plasma-mobile: minimize runtime dependencies (!449) 2019-06-20 12:41:05 +02:00
Bart Ribbers 9ad2131bac kde/plasma-phone-components: minimize runtime dependencies (!449) 2019-06-20 12:41:04 +02:00
Bart Ribbers 00a6a5ef85 kde/powerdevil: remove, upstreamed (!449) 2019-06-20 12:30:45 +02:00
Bart Ribbers 12cec22801 kde/polkit-kde-agent: remove, upstreamed (!449) 2019-06-20 12:30:36 +02:00
Bart Ribbers bd64bd0172 kde/plasma-workspace: remove, upstreamed (!449) 2019-06-20 12:30:24 +02:00
Bart Ribbers 5c30291805 kde/plasma-pa: remove, upstreamed (!449) 2019-06-20 12:30:15 +02:00
Bart Ribbers 4da0125b9e kde/plasma-nm: remove, upstreamed (!449) 2019-06-20 12:30:07 +02:00
Bart Ribbers 2e0412787e kde/plasma-integration: remove, upstreamed (!449) 2019-06-20 12:29:59 +02:00
Bart Ribbers 9617038a29 kde/okular: remove, upstreamed (!449) 2019-06-20 12:29:48 +02:00
Bart Ribbers 67fee813f4 kde/milou: remove, upstreamed (!449) 2019-06-20 12:29:42 +02:00
Bart Ribbers 566c5fcacb kde/kwin: remove, upstreamed (!449) 2019-06-20 12:29:32 +02:00
Bart Ribbers 16641e0946 kde/kwayland-integration: remove, upstreamed (!449) 2019-06-20 12:29:25 +02:00
Bart Ribbers 70f917c744 kde/libkscreen: remove, upstreamed (!449) 2019-06-20 12:29:15 +02:00
Bart Ribbers 379e9e6987 kde/libksysguard: remove, upstreamed (!449) 2019-06-20 12:29:04 +02:00
Bart Ribbers 3469aa04bc kde/ksysguard: remove, upstreamed (!449) 2019-06-20 12:28:52 +02:00
Bart Ribbers 9a99081929 kde/kscreenlocker: remove, upstreamed (!449) 2019-06-20 12:28:42 +02:00
Bart Ribbers 595c9c5bbf kde/kscreen: remove, upstreamed (!449) 2019-06-20 12:28:34 +02:00
Bart Ribbers 3610e8187c kde/konsole: remove, upstreamed (!449) 2019-06-20 12:28:26 +02:00
Bart Ribbers a7a2ea5d13 kde/kactivitymanagerd: remove, upstreamed (!449) 2019-06-20 12:28:16 +02:00
Bart Ribbers fa4418b4a4 kde/kdecoration: remove, upstreamed (!449) 2019-06-20 12:28:03 +02:00
Bart Ribbers 5bb5d2fe46 kde/breeze: remove, upstreamed (!449) 2019-06-20 12:27:52 +02:00
Martijn Braam d591cd2a38 device/pine-dontbeevil: Seperate version for longts (!407)
This adds a seperate dts for the longts version of the devkit (which was
the un-inverted version before) and adds a shortts version which was
inverted before, but didn't exist in pmaports yet because I manually
edited the dts for every release.

This MR abuses the kernel switching feature to switch the dtb instead so
shortts/longts can be selected in the init step.

[ci:skip-build]: build won't finish in time
2019-06-20 00:19:29 +02:00
Martijn Braam 1b5e1e0d0c tests: Allow longts and shortts as kernel name (!407)
This is required for the pinephone-dontbeevil.
2019-06-20 00:18:46 +02:00
Oliver Smith 24df480254 main/telepathy-qt: disable tests
Tests are failing at least for armhf. Disable all of them to unblock the
builder for now.

[ci:skip-vercheck]
2019-06-18 08:34:45 +02:00
Bart Ribbers 80a260d778 main/postmarketos-ui-plasma-mobile: add spacebar to depends (!376)
An SMS application for Plasma Mobile, finally!

Please note that it's still in development, and it doesn't work
flawlessly yet. For example new chats can't be initiated, someone else
has to send an SMS to you first before you can send an SMS back.

However, with this application basic phone functionality should work
with Plasma Mobile. I'll keep it up-to-date while it develops, just like
the other to-be-released Plasma Mobile applications we already package
(e.g. Plasma Camera).

[ci:skip-build]: already built successfully in CI
[ci:skip-vercheck]
2019-06-17 21:58:25 +02:00
Bart Ribbers d328132888 kde/spacebar: new aport (!376) 2019-06-17 21:58:11 +02:00
Bart Ribbers 59703a3ac0 kde/ktp-common-internals: new aport (!376) 2019-06-17 21:58:11 +02:00
Bart Ribbers 5b5790e246 kde/telepathy-logger-qt: new aport (!376) 2019-06-17 21:58:11 +02:00
Bart Ribbers 9e5424ec42 main/telepathy-qt: rename from telepathy-qt5 [ci:skip-vercheck] (!376) 2019-06-17 21:58:11 +02:00
Bart Ribbers bdce39ee7d main/telepathy-glib: remove, has been upstreamed (!376) 2019-06-17 21:58:07 +02:00
rahmanshaber 14e82cd291 coreapps/*: update to 2.6.0 (!446)
[ci:skip-build]: already built successfully in CI
2019-06-17 21:43:28 +02:00
Oliver Smith 9fcf7798c6 maemo/hildon-thumbnail: update to 3.1.2
gstreamer 0.10 has been dropped from Alpine, but hildon-thumbnail 3.0.51
was still depending on it. Update to 3.1.2, where it now depends on
gstreamer 1.0 (which is in Alpine).

The aarch64 patch can be dropped, it does not apply anymore, and
building for aarch64 works without it.
2019-06-17 21:32:22 +02:00
drebrez 175afb81f9 matchbox/matchbox-keyboard: remove (upstreamed) (!441) 2019-06-17 20:42:58 +02:00
drebrez 7bc1750d64 main/libfakekey: remove (upstreamed) (!441) 2019-06-17 20:42:58 +02:00
Oliver Smith 6834486531 maemo/hildon-thumbnail: rebuild after soname bump 2019-06-17 20:41:25 +02:00
Bart Ribbers 9c2d1e2124 temp/qt5-qtbase & qt5-qtdeclarative: update to 5.12.4 (!447)
[ci:skip-build]: won't finish in time
2019-06-17 19:38:01 +02:00
Bart Ribbers 918579087a main/postmarketos-ui-hildon: fix launch (!439)
[ci:skip-build]: already built successfully in CI
2019-06-14 02:01:24 +02:00
Tito Ragusa 3209440946 oppo-find-7a: fix refresh rate (!438)
[ci:skip-build]: already built successfully in CI
2019-06-13 23:47:10 +00:00
Bart Ribbers 7974e392f1 temp/u-boot: remove (!437)
Pine64 support has been upstreamed:
https://github.com/alpinelinux/aports/commit/21aad5d3185cd9b8509fb3190650d5dd90d38483
2019-06-14 01:36:01 +02:00
Martijn Braam c1d859554e main/hwtest: update to 0.3.0 (!436)
* Added --skip option to skip specific tests
* Allow skipping broken inputs in interactive mode with ctrl+c
* Added basic modem test that lists modems in ofono
* Added audio test based on alsabat
* Added pressure sensor support
* Fixed temperature calculations
2019-06-14 01:24:36 +02:00
Alexey Min 40754def82 linux-samsung-klte: update to latest LineageOS-14.1 kernel (!435)
Fix elogind sending device to a reboot on session start by lightdm.

Fixes #274

[ci:skip-build]: already built successfully in CI
2019-06-13 22:17:18 +02:00
Alexey Min c7265011db device-samsung-klte: don't replace NM unmanaged devices (!434)
Do not overwrite NM unmanaged devices, append instead.

[ci:skip-build]: already built successfully in CI
2019-06-13 22:08:39 +02:00
Oliver Smith eecd32812d cross/busybox-static-*: update to 1.30.1-r2 2019-06-13 22:07:51 +02:00
Luca Weiss e3d9cc2a9e temp/mesa: update to 19.1.0 (!433)
[ci:skip-build]: already built once in CI
2019-06-11 23:41:00 +02:00
Bart Ribbers e5e8991f79 temp/mesa: fix install prefix, enable release optimizations (!431)
The description below is a quote from Brian Masney in #296.

The pmOS mesa packages need to have -Db_ndebug=true passed to the meson
build so that debug assertions and extra validations are disabled to
improve overall system performance. See [1] for more details. Fedora
also recently made this change: [2]

This change, along with using the master branch of mesa, gets the
Freedreno driver working properly with X11 on the Nexus 5 and presumably
other A3XX-based systems.

--buildtype=release should also be passed to meson for extra
optimizations. See the thread [3] for more details.

[1] https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L321
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1692426.
[3] https://lists.freedesktop.org/archives/mesa-dev/2019-June/219960.html

[ci:skip-build]: already built successfully in CI
2019-06-11 23:02:07 +02:00
Shuhao Wu f4b127356f hammerhead: enable all cpus (!426)
Previous cmdline is disabling cpu2,3 by default.

Fixes #282.

[ci:skip-build]: already built successfully in CI
2019-06-11 22:43:13 +02:00
Oliver Smith 7bc8d09013 temp/sonnet: fork from Alpine for armv7
Alpine's build bot is stuck on another package, but this needs to be
rebuilt against the recently updated libhunspell. Otherwise Plasma
Mobile cannot be installed, as pmbootstrap fails with:

ERROR: Could not find dependency 'so:libhunspell-1.6.so.0' in any aports folder or APKINDEX.

I've tested that this builds properly.
2019-06-11 21:37:37 +02:00
Oliver Smith cd94b3ef74 CI: test_upstream_compat: disable binutils check
We need to freeze binutils at 2.31 (Alpine has 2.32 already), until
issue #295 is resolved. Let's disable the test, so the testsuite passes
again if everything else is good, and we don't start to ignore whether
it fails or not.
2019-06-11 21:33:32 +02:00
Oliver Smith c61f0dae5e Revert "cross/binutils-*: update to 2.32-r0"
This reverts commit 593fe01bb8.

Binaries in binutils-armhf etc. break the build system:

Error loading shared library libopcodes-2.32.so: Exec format error (needed by /usr/bin/as)
Error loading shared library libbfd-2.32.so: Exec format error (needed by /usr/bin/as)
Error loading shared library libz.so.1: Exec format error (needed by /usr/bin/as)
Error relocating /usr/bin/as: bfd_errmsg: symbol not found
Error relocating /usr/bin/as: deflateEnd: symbol not found
Error relocating /usr/bin/as: bfd_arch_bits_per_address: symbol not found
Error relocating /usr/bin/as: bfd_set_error_program_name: symbol not found
Error relocating /usr/bin/as: xcalloc: symbol not found

Reverting for now. The upstream compatibility CI test is expected to fail.
The postmarketOS binary repositories still have the old binutils package.

I'm analyzing this issue in #295.

[ci:skip-vercheck]: package downgrade
2019-06-09 22:44:04 +02:00
Danct12 99d90175bf hybris/libhybris: enable mali and adreno quirks (!428)
Signed-off-by: Danct12 <danct12@disroot.org>

[ci:skip-build]: already built in CI
2019-06-09 21:28:03 +02:00
Danct12 f51840620b hybris/libhybris: updated for gralloc handler (!428)
Signed-off-by: Danct12 <danct12@disroot.org>
2019-06-09 21:26:45 +02:00
Oliver Smith 593fe01bb8 cross/binutils-*: update to 2.32-r0 2019-06-09 21:24:16 +02:00
hacker12455 dc8128f2dc device/htc-k2ul: 16 bit color mode, remove v4l udev rules (!427)
16 bit color mode is needed for Xorg to work properly, udev rules are
removed due to crashes and hangs.

[ci:skip-build]: already built successfully in CI
2019-06-09 21:10:20 +02:00
Asriel Dreemurr 0f575f81c6 hybris/xf86-video-hwcomposer: updated to the latest 18-02-2019 commit (!424)
[ci:skip-build]: already built successfully in CI

Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-06-07 23:52:38 +02:00
Asriel Dreemurr f6e76368c1 hybris/libhybris: updated to the latest 08-05-2018 commit, fixed compilation (!424)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-06-07 23:52:18 +02:00
Asriel Dreemurr 97f3092b88 hybris/glamor-hybris: updated to the latest 17-12-2018 commit (!424)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-06-07 23:52:18 +02:00
Asriel Dreemurr 35c431ee8f hybris/drihybrisproto: updated to the latest 17-12-2018 commit (!424)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-06-07 23:52:18 +02:00
Asriel Dreemurr b36217eefe hybris/drihybris: updated to the latest 17-12-2018 commit (!424)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
2019-06-07 23:52:18 +02:00
hacker12455 aebe74f61e device/htc-k2ul: add deviceinfo touchscreen device (!422) 2019-06-07 23:47:31 +02:00
Tito Ragusa 7a320245bc main/msm-fb-refresher: fix typo 2019-06-07 21:36:29 +00:00
Bart Ribbers 71815d8718 main/postmarketos-ui-weston: fix custom configs (!423)
Use the start_weston.sh wrapper script again, and make it work with
lightdm. It makes custom weston configs possible, and allows starting
postmarketos-demos together with weston. The custom config logic uses a
default config from postmarketos-ui-weston unless it is overwritten
with a device specific config. Our default configs use fbdev in most
cases, as this is not the case since the change to lightdm, weston was
broken for most devices with downstream kernels, that only work with
framebuffer.

Lastly, set myself as maintainer for this UI. Resolves #289

Ollieparanoid extended this patch and made sure that this boots up
weston on the samsung-i9100 again.
2019-06-07 22:46:49 +02:00
Bart Ribbers 30e708c0f7 temp/weston: remove, changes have been upstreamed (!421) 2019-06-07 16:49:09 +02:00
hacker12455 2e31fbb242 Add WiFi firmware and enable it. (!419) 2019-06-07 15:42:18 +02:00
Danct12 92454681aa linux-chuwi-hi10plus: upgrade to 5.1.7, optimize config (!416)
I've upgraded the kernel to 5.1.7 stable for this tablet, boots and
working perfectly fine.

I have also added support for initramfs touch screen using mainline
silead and as well as optimized the kernel configuration a little bit,
it should now compile faster on ollieparanoid's computer (where the
official binary packages are currently built).

[ci:skip-build]: won't finish in time on CI

Signed-off-by: Danct12 <danct12@disroot.org>
2019-06-06 22:40:35 +02:00
Bart Ribbers 5f7ad0f458 kde/breeze: remove automoc4 from makedepends (!417)
It's removed from upstream and isn't even needed in the first place,
it's a Qt4 dependency

[ci:skip-build]: already built successfully in CI
2019-06-06 22:33:05 +02:00
hacker12455 3336552bef htc-k2u: new device (HTC One SV) (!412)
Device boots, USB networking works.

[ci:skip-build]: already built successfully in CI
2019-06-06 22:27:37 +02:00
Oliver Smith 974fa8e028 cross/musl-*: update to 1.1.22-r2 2019-06-06 22:22:51 +02:00
Alexey Min 80cf689e81 main/linux-postmarketos-qcom: update to 7370f062 (!415)
* Add panel driver for oneplus-bacon
* Add dts for oneplus-bacon
* Remove msm-id and board-id properties from samsung-klte

after https://gitlab.com/postmarketOS/linux-postmarketos/merge_requests/2
2019-06-05 22:05:14 +02:00
Oliver Smith 2cba912d15 cross/grub-x86: fix pmb:strict option name
This package should use the pmb:strict option, in order to force
pmbootstrap to always build it in strict mode. Otherwise it can have
a conflict with packages installed earlier.

I've just noticed that the merged patch was still using the early name
of the option, "pmbootstrap-strict". It was later changed to
"pmb:strict" in the related pmbootstrap!1771 merge request, for
consistency with !pmb:kconfig-check. Fix grub-x86 to use the proper
option name.

[ci:skip-vercheck]: version bump not needed
2019-06-04 23:28:39 +02:00
Asriel Dreemurr 96e2e6df66 main/postmarketos-ui-sway: new aport/new UI (!374)
Does not work without hw acceleration!
2019-06-04 22:34:53 +02:00
Asriel Dreemurr 5b1a20fbaf main/postmarketos-ui-*: fix lightdm autologin after reinstall (!385)
When the UI package is reinstalled (due to the package being recompiled
or upgraded), it runs $pkgname.post-upgrade instead of
$pkgname.post-install which would run the sed replacement LightDM
autologin. This will cause LightDM to show the greeter when the UI
package is rebuilt, and the user ran pmbootstrap install without
deleting the old chroot.

Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
Reviewed-by: Danct12 <danct12@disroot.org>
Signed-off-by: Danct12 <danct12@disroot.org>
2019-06-04 20:42:13 +02:00
Bart Ribbers b446c06b79 kde/kde-frameworks porting aids: remove (upstreamed) (!413) 2019-06-02 09:34:26 +02:00
Danct12 bbf3e19294 main/linux-postmarketos-*: upgrade mainline to 5.2-rc2, stable to 5.1.5 (!392)
[ci:skip-build]: Takes more than an hour to build on CI.

Signed-off-by: Danct12 <danct12@disroot.org>
2019-06-02 04:52:45 +02:00
Alexey Min e4cc96d27e samsung-klte: downstream: add android adaptation (!332)
Lots of device-specific configurations:

* android mount points and mounts
* android groups and users (needed for udev rules)
* android udev rules for platform devices (needed for android services to run)
* NetworkManager device-specific config
* wpa_supplicant device-specific config
* device-specific openrc service for late initcalls to bring up Wi-Fi hardware
* extra helper scripts to call logcat, set backlight brightness,
  get battery status, unlock kde screenlocker session
* use kernel cmdline from downstream android to keep it as close to
  android as possible. Important for android in lxc container later
2019-06-02 02:49:02 +00:00
Oliver Smith 568b156c14 temp/wlroots: don't build for arm*
Disable for arm arches, because there it fails with:

[89/300] Compiling C object 'xcursor/c7765ab@@wlr_xcursor@sta/xcursor.c.o'.
FAILED: xcursor/c7765ab@@wlr_xcursor@sta/xcursor.c.o
gcc -Ixcursor/c7765ab@@wlr_xcursor@sta -Ixcursor ...
cc1: error: /home/pmos/build/pkg/mesa/usr/include: No such file or directory [-Werror=missing-include-dirs]

I suspect, that this relates to our custom mesa packaging, which is only
built for arm architectures currently. Phosh isn't running on anything
other than x86_64 so far in postmarketOS, so let's just disable wlroots
arm too until this is figured out.

[ci:skip-vercheck]: only modified the arch line
2019-06-02 04:31:05 +02:00
Bart Ribbers 3bcc7efacb phosh/chatty: new aport (!8)
[ci:skip-build]: already built successfully in CI
2019-06-02 03:40:25 +02:00
Bart Ribbers 9d9fdc76cb phosh/purple-mm-sms: new aport (!8) 2019-06-02 03:39:39 +02:00
Bart Ribbers 3c2ed666a6 phosh/calls: new aport (!8) 2019-06-02 03:39:39 +02:00
Bart Ribbers 15e5de079c main/postmarketos-ui-phosh: new aport (!8) 2019-06-02 03:39:39 +02:00
Bart Ribbers 8b688c81e4 phosh/virtboard: new aport (!8) 2019-06-02 03:39:39 +02:00
Bart Ribbers 7232400400 phosh/phosh: new aport (!8) 2019-06-02 03:39:39 +02:00
Bart Ribbers 4d7b35d0de temp/wlroots: fork to enable elogind, rootston (!8) 2019-06-02 03:39:39 +02:00
Luca Weiss 693079abb5 mkinitfs: Introduce deviceinfo_append_dtb variable (!387)
We don't need to append the dtb to the kernel image in all cases, with
e.g. the u-boot bootloader we can load the dtb seperately from the
kernel image. Introduce a new variable deviceinfo_append_dtb, if set to
"true", append the dtb, otherwise just copy the dtb file to the boot
partition.

Fixes #260

[ci:ignore-count]
2019-06-02 03:13:43 +02:00
Tito Ragusa e25a233534 oppo-find-7a: add firmware subpackage (!402) 2019-06-02 03:00:58 +02:00
Oliver Smith 77a57de7ed Cosmetic: temp/*: fix comments on top of APKBUILD
Remove Alpine's maintainers and contributors from the APKBUILDs in temp
where we still had them. In general, we don't keep them there, because
we don't want them to get e-mailed about questions from the postmarketOS
aports. It is obvious that they were copy pasted from Alpine, with minor
adjustments.

Remove "Remember to increase pkgrel after changing _pkgver!" from
temp/mesa, because we have a CI check for that now.

[ci:skip-build]: cosmetic changes only
2019-06-01 23:32:45 +02:00
Oliver Smith 72822cf030 temp/multipath-tools: remove
The package was rebuilt in upstream.
2019-06-01 23:29:37 +02:00
Martijn Braam 3bba29a6ef Add postmarketos-ui-shelli (!397)
A framebuffer console plus gesture recognition UI option. Tested locally
building and on nexus 5. The power key works fine for me and the freeze
after sitting for about 5 minutes still happens for me but I don't
consider that necessarily a shelli bug, maybe the code needs to feed a
watchdog or something.
2019-06-01 23:06:37 +02:00
Bart Ribbers 36d68814fd kde/* && main/buho: fix upstream compatiblity by renaming attica and phonon dependencies (!411) 2019-06-01 22:42:50 +02:00
Oliver Smith 33634b0b58 kde/powerdevil: bump pkgrel
Current binary package has missing dependency: so:libkworkspace5.so.5
2019-06-01 22:41:44 +02:00
Bart Ribbers 2087c988ad kde/kde-frameworks tier4: remove (upstreamed) (!410) 2019-06-01 21:07:54 +02:00
Bart Ribbers eb69775588 kde/kde-frameworks tier3: remove (upstreamed) (!409) 2019-06-01 19:47:05 +02:00
Luca Weiss 83592a0522 postmarketos-ui-xfce4: remove xfce4-mixer (!405)
It has been removed from the Alpine aports because it depends on the
unmaintained gstreamer0.10 package. Remove it from our metapackage.
2019-06-01 15:53:44 +00:00
Bart Ribbers 83d5c758f4 kde/polkit-kde-agent: fix dependency name (!406) 2019-05-31 18:36:55 +02:00
Martijn Braam 07cbc8cf18 main/hwtest: Update to 0.2.0 (!401)
This adds the first interactive tests for inputs, interactive tests are
only run when specifying --interactive/-i. This also adds --export and
--verify. The export option will write the test results to an .ini file.
The verify option will run the tests and compare it to the saved export
and then will show a diff of hardware functionality.
2019-05-31 03:30:09 +02:00
misaka4e21 dd3d5cda92 motorola-titan: fix boot.img flashing and booting (!399)
1. Set deviceinfo_flash_offset_base to 0x00000000.
2. Enable deviceinfo_bootimg_qcdt, and make dt.img for it.
Directly use zImage instead of zImage-dtb for smaller boot.img size.
3. Reduce kernel size by disable xz, lzma and bz2 compressing.
4. Update kernel to the last version in LineageOS repository.

Please note that it is ONLY TESTED on XT1079 "thea", aka Moto G 2014 LTE.
However, "thea" and "titan" are nearly identical, sharing same kernel
and defconfig on LineageOS, etc.

[ci:skip-build]: already built successfully in CI
2019-05-31 03:25:21 +02:00
Danct12 47d9a0871f unity8/accountsservice-ubuntu: fix conflict with libaccountsservice. (!398)
Signed-off-by: Asriel Dreemurr <asriel.danctnix@gmail.com>
Signed-off-by: Danct12 <danct12@disroot.org>
2019-05-31 03:09:05 +02:00
Alexander Polynomdivision 3cdb983863 samsung-herolte: add nonfree_firmware subpackage (!395) 2019-05-31 02:23:00 +02:00
Oliver Smith cb1e3c20b4 temp/multipath-tools: fork from alpine to rebuild
Rebuild to fix:
ERROR: unsatisfiable constraints:
  so:liburcu.so.6 (missing):
    required by: multipath-tools-0.8.1-r0[so:liburcu.so.6]

Upstream patch:
https://github.com/alpinelinux/aports/pull/8319
2019-05-31 02:19:40 +02:00
Alexey Min ec2ec5b84b hybris/lxc-android: fix android group names in system udev rules (!391) 2019-05-31 01:15:30 +02:00
Alexey Min 64e8ee6279 hybris/lxc-android: remove unneeded udev rule override (!391)
It conflicts with some device packages that already have it. As
discussed in [1], this is better to be done in device specific package.

[1] https://gitlab.com/postmarketOS/pmaports/merge_requests/332#note_174632449
2019-05-31 01:10:48 +02:00
Danct12 93aeda32da firmware/firmware-chuwi-hi10plus: Use extracted firmware instead of silead_ts.fw (!386)
[ci:skip-build]: Kernel takes more than an hour to compile on CI.

Signed-off-by: Danct12 <danct12@disroot.org>
2019-05-31 00:47:19 +02:00
Danct12 458d6e80e1 linux-chuwi-hi10plus: update to 5.1.5 (stable) (!386)
Signed-off-by: Danct12 <danct12@disroot.org>
2019-05-31 00:47:06 +02:00
Oliver Smith 75c8eaeaf7 CI: fix package count check + ci:skip-build (!404)
Do not require ci:ignore-count, when using ci:skip-build in a MR that
has change a lot of packages. If the user already supplies ci:skip-build
then we can safely assume that we don't to check the package count.

Fixes #267
2019-05-31 00:38:17 +02:00
Oliver Smith e504c8d1b9 CI: version check: fix running on upstream/master (!403)
When running on upstream/master, don't compare HEAD against
upstream/master. This is the same commit, so all versions will be the
same. Instead compare against HEAD~1.
2019-05-31 00:27:41 +02:00
Bart Ribbers cdd889cbbe kde/kde-frameworks tier 2: remove (upstreamed) (!396)
https://github.com/alpinelinux/aports/pull/8204
2019-05-30 22:32:30 +02:00
Alexey Min da47e5faab temp/qt5-qtdeclarative: resurrect (!400)
We need our build of qtdeclarative, otherwise building plasma/kde
components fails on arm with:

ld: /usr/lib/libQt5Quick.so.5.12.3: undefined reference to `QOpenGLFunctions_1_0::versionProfile()@Qt_5'
ld: /usr/lib/libQt5Quick.so.5.12.3: undefined reference to `QOpenGLFunctions_3_2_Core::versionProfile()@Qt_5'

That is, because Alpine's qt5-qtdeclarative is built against a
qt5-qtbase version, where the opengl version is not changed to
opengl es2, like it is done in pmaports.

Related: #270
2019-05-30 21:44:51 +02:00
Oliver Smith 11b1448aa5 CI: add check_changed_aports_versions.py (!382)
Make sure that changed aports always have a higher version than what is
currently in master. This check can be skipped with ci:skip-vercheck (in
square brackets).

Related: #187
2019-05-30 16:11:33 +02:00
Bart Ribbers a4c298f829 Plasma mobile, weston: use lightdm, elogind (!379)
Move Wayland meta packages to LightDM and replace ConsoleKit2 for
elogind for Plasma.

Now we don't need the hacky scripts in /etc/profile.d anymore!
This change requires elogind for both Weston and Plasma Mobile. Using
elogind allows us to use one patch less in kwin. Weston has logind
(which elogind provides) support disabled in Alpine Linux, so I put the
package in temp/ with it enabled for now, but will upstream this change
to Alpine.

Remove consolekit2 dependency in postmarketos-ui-xfce4.

[ci:skip-build]: already built successfully.
2019-05-30 01:39:25 +02:00
Bart Ribbers 120fec4fa4 kde/kde-frameworks tier 1: remove (upstreamed) (!394)
https://github.com/alpinelinux/aports/pull/7992
2019-05-29 00:32:58 +02:00
Luca Weiss 96c46d92d6 temp/lttng-tools: remove (!390)
It was used at some point during the unity8 bringup but wasn't even used
anymore in the final MR. Remove it.
2019-05-29 00:14:19 +02:00
Danct12 b77f0911b8 main/onboard: removed package (!388)
https://github.com/alpinelinux/aports/pull/8030\#issuecomment-496246018
2019-05-28 23:54:58 +02:00
Oliver Smith f45faa2c2a cross/grub-efi-x86: update to 2.0.2-r17 2019-05-28 23:21:13 +02:00
Bart Ribbers 9302c5f9aa kde/plasma* && main/postmarketos-ui-plasma-mobile*: disable armhf (!206)
They don't work on that arch because of https://gitlab.com/postmarketOS/pmaports/issues/75
2019-05-28 22:53:30 +02:00
Bart Ribbers c45bca7099 temp/qt5-qtdeclarative: remove as armv7 is now in Alpine Linux (!206) 2019-05-28 22:53:29 +02:00
Bart Ribbers 6cfc00bbdd temp/qt5-qtbase: update to 5.12.3 (!393) 2019-05-28 20:09:32 +02:00
Piotr Halama dcc2ce2438 nokia-frt: adjust to fixed upstream repo (!380)
Nokia only provides .zip files without any git history, so I had to
download the kernel git repo for 3.18.79 and then apply all downstream
changes as one singular commit to preserve at least some of the history.

My previous PC had big problems with creating patch files for symlinks
so I added some commits that should have been in patchfiles instead.
This merge request fixes that, leaving in repo just 3.18.79+downstream
patches and all my patches as patchfiles inside aports.

[ci:skip-build]: already built successfully in CI
2019-05-26 18:07:11 +00:00
Bart Ribbers 5267dd0301 kde/*: cleanups and updated git-based packages (!375)
All packages are now built as RelWithDebugInfo rather than Release. This
should make debugging these packages easier.

I've also updated all Plasma packages without releases (git-based) to
their latest masters. plasma-angelfish now has it's first release, and a
new dependency called "purpose".

Calindori had a typo in the pkgver causing it to look like it was
released in the 30th month of the year. Because of this, the old package
will have to explicitly be removed from the repository. Let's hope no
one uses that package yet, or they will have to wait till 2020 before
it'll get updated again on their system lol.

[skip ci]: it does not finish in time. ollieparanoid made sure that it
           builds on all arches. Usually we would use [ci:skip-build]
           instead of [skip-ci], but now that [ci:skip-build] also
           verifies that downloading sources is working as expected,
           and for some reason gitlab CI can't download one source file
           even when retrying [1] (cache on their end?), let's skip it
           this time.

[1] https://gitlab.com/postmarketOS/pmaports/-/jobs/219539514
2019-05-26 19:49:43 +02:00
Alexey Min 3e883537f1 hybris-base: new package (!351)
Meta package to install all needed packages to get libhybris hardware
adaptation working.

Has 2 subpackages (caf/generic), that device packages can depend on.

Arches are limited, because libhybris cannot be built for x86_64.

[ci:skip-build]: already built successfully in CI
2019-05-26 18:03:17 +02:00
Alexey Min 2d08cf8554 hybris/lxc-android: add more android groups and logcat script (!351)
also be smart about default username
2019-05-25 23:08:31 +03:00
Oliver Smith 1fb005eec4 temp/mesa: build freedreno for armv7 (!383)
Fix the regression from the mesa refactoring and from switching to armv7
in hammerhead.

[ci:skip-build]: already built successfully in CI for x86_64; I've
                 tested manually that it builds for armv7.
2019-05-25 02:01:48 +02:00
Danct12 9ea0ca4de7 main/linux-postmarketos-*: upgrade mainline (5.2-rc1) and stable (5.1.4) (!367)
Tested with qemu. Tested on N900 by ollieparanoid.

[ci:skip-build]: kernel takes more than an hour to compile on CI.
2019-05-25 01:55:57 +02:00
Asriel Dreemurr abb5302992 linux-xiaomi-santoni: rebased to 3.18.140 (!378)
[ci:skip-build]: aready built successfully in CI
2019-05-25 00:47:56 +02:00
Oliver Smith debf530c78 CI: add common.py (from build_changed_aports.py)
Move most code from build_changed_aports.py to common.py. Another patch
will follow soon, which uses common.py to check the versions of changed
aports.

Related: #187
2019-05-24 22:48:05 +02:00
Oliver Smith 21852b3cc6 CI: verify sources when ci:skip-build (!371)
Instead of simply skipping the build check, when ci:skip-build is in
the last commit message (in brackets), download the sources and verify
their checksums.

Depends: pmbootstrap!1788
2019-05-24 19:37:13 +00:00
silver a31cc23571 samsung-apexq: fix red screen (!377) 2019-05-23 20:51:08 +00:00
Martijn Braam d72923dcd5 main: linux-postmarketos-allwinner: PinePhone updates
- main: postmarketos-mkinitfs: Add /run
  Create the /run directory in the initramfs so that cryptsetup doesn't
  crash on not being able to create /run/cryptsetup for lockfiles

- device: pine-dontbeevil: Remove workaround for touchscreen

- main: linux-postmarketos-allwinner: Implemented supplies for touchscreen
  This uses a slightly newer commit from the kernel repo that implements
  requesting a regulator in the touchscreen driver

- device: pine-dontbeevil: Remove ethernet from initramfs
  This actually makes debugging more complicated since networkmanager wont
  touch the ethernet adapter afterwards and the initramfs can be debugged
  over uart

- temp/u-boot: sync APKBUILD with upstream and update to 2019.04

- main: linux-postmarketos-allwinner: Use 20190521 git version
2019-05-23 14:39:21 +02:00
Martijn Braam 4f5aa75375 Add hwtest 0.1.0 2019-05-21 19:39:26 +00:00
Danct12 5d478a8e48 chuwi-hi10plus: fix pwm lpss backlight (!372)
[ci:skip-build]: kernel takes more than an hour to compile on CI.
2019-05-21 19:18:10 +02:00
Danct12 94d5efbc96 chuwi-hi10plus: new device (CHUWI Hi10 Plus) (!347)
This port uses the Android bootloader (kernelflinger) instead of
Gummiboot or rEFInd,... just in case if people still want to easily
reflash Android later without going through some DNX Fastboot, Intel
Flash Tool blah blah.

Chuwi violates GPLv2 by not releasing the kernel sources of Android to
the public. This port uses Linux mainline (5.1-rc7), and almost
everything works properly, so thankfully we don't have to use the 3.10
kernel which is outdated and EOL.

[ci:skip-build]: kernel takes more than an hour to compile on CI.
                 ollieparanoid made sure that everything builds.
2019-05-19 21:45:44 +02:00
Danct12 f343cb5a0e main/onboard: new aport (!370)
Currently we're using matchbox-keyboard as on screen keyboard. However,
onboard seems to be a better alternative to, it has auto-show, word
suggestions, themes and settings you can choose. So far the best OSK out
there on the market.

There are a few minor issue such as word suggestions doesn't work (not
sure why, but i assume that onboard doesn't know about the program that
was in front of it), sound feedback doesn't work at all due to missing
sound despite it exists in
/usr/share/sounds/freedesktop/stereo/onboard-key-feedback.oga. Other
than that, I haven't found any issue while testing.

Tested on qemu-amd64.
2019-05-19 20:57:20 +02:00
Tito Ragusa da260f4652 oppo-find-7a: fix display, touchscreen (!369)
Make the display work, set virtual_size and add
msm-fb-refresher and 0001-fix-video-argb-setting.patch.

[ci:skip-build]: already built successfully in CI
2019-05-19 20:09:20 +02:00
Oliver Smith 3b35907c50 main/pmbootstrap: update to 1.6.1 2019-05-19 19:58:52 +02:00
Bart Ribbers e927feb4d5 main/maui*: update to latest git (!366)
Built and tested on x86_64, everything works as before.

[ci:skip-build]: ollieparanoid made sure that this builds for all
                 arches.
2019-05-18 02:21:55 +02:00
Bart Ribbers 6761bc8e78 kde/kde-frameworks: update to 5.58.0 (!366)
Built and tested on x86_64, everything works as before.
2019-05-18 02:21:42 +02:00
hacker12455 322cec513c main/columbiad: new package (full screen launcher) (!364)
It is a standalone app, I'm planning to make a UI version of it.
2019-05-16 20:23:56 +02:00
Danct12 aff352d9c3 main/postmarketos-base: ignore confusing p2p0 interface (!344)
On some devices (mainly the ones that uses wcnss-wlan), there is another
interface beside wlan0, which is p2p0. It is used for Wi-Fi Direct, but
beside that, this might also cause confusion to other users as well. And
also you cannot connect into any network with this interface.
2019-05-14 22:24:26 +02:00
Luca Weiss a49f691f49 temp/mesa: fix symlink, refactor, split dri-kmsro (!362)
Fix missing symlink for the first driver in mv_dri() (caused by "shift"
at the wrong position). Build freedreno for arm only, not for all
arches.

Lima is for rendering and sun4i-drm (part of kmsro) for the display, so
split it into its own subpackage and use it in device-pine-*.

[ci:skip-build]: ollieparanoid made sure, that this builds. This won't
                 finish in time in CI.
2019-05-14 21:51:39 +02:00
Oliver Smith 85586ffbed temp/networkmanager: remove (exists in upstream again) 2019-05-14 18:55:35 +02:00
Oliver Smith 67eb31effd temp/mesa: bump pkgrel
Fix up for !359: the pkgrel was not bumped, and because the real mesa
version was stored in _pkgver instead of pkgver (which is set to 9999),
this means that the APKBUILD has exactly the same version as before. So
pmbootstrap will not try to build it, resulting in a missing
mesa-dri-lima package and general confusion.

See also:
https://gitlab.com/postmarketOS/pmaports/merge_requests/359#note_170054969
2019-05-14 16:14:38 +02:00
Bart Ribbers 85dfee5b75 temp/mesa: update to latest git master to include Lima (!359)
temp/mesa: enable mesa-dri-lima subpackage
temp/mesa: add a fix for Wayland on Lima
temp/mesa-purism-gc7000: update to latest Git and try to resolve conflicts with mesa
temp/mesa: switch version to 19.1.0-rc1
device/device-pine-a64lts: add mesa and mesa-dri-lima to depends
device/device-pine-dontbeevil: add mesa to depends
device/device-purism-librem5dev: remove now defunct mesa-purism-gc7000-dri-imx from depends
temp/mesa*: re-add X11 support
temp/mesa-purism-gc7000: fix build error which for some reason didn't cause problems earlier
temp/mesa*: fix X11 DRI symlinks
2019-05-14 16:26:21 +02:00
Bart Ribbers 5f3d999689 kde/plasma*: update to 5.15.5 (!350)
[ci:skip-build]: ollieparanoid made sure that it builds for all arches.
2019-05-12 00:20:08 +02:00
Oliver Smith b42a538152 modem/libqipcrtr4msmipc: add armv7 to arches
Fix building modem-qcom-msm-downstream-common for armv7 (which was
done in the last commit, although it only mentions aarch64 in the
commit message).
2019-05-11 23:23:00 +02:00
Asriel Dreemurr 36addd6698 modem/modem-qcom-msm-*: enable aarch64 (!360) 2019-05-11 22:01:29 +02:00
Tito Ragusa 1f8095771c oppo-find-7a: new device (Oppo Find 7a)
I only tested the usb network feature by ssh'ing in to the device.
Nothing else works yet.

[ci:skip-build]: already built successfully in CI
2019-05-11 21:26:43 +02:00
humanleftswatch b4b7f1ffdc lg-vee7e: new device (LG Optimus L7 II) (!358)
This is the beginning of a port to the the LG devices with the codename
vee7e, the one i have is the LG-P710 but according to the xda forum
there are some others, so if someone could test those that would be
nice.

I have not done any work besides making the kernel build and checking if
it boots so there still are some rather obvious issues but it boots and
has working USB-networking as well as a partially working screen and
touchscreen.

[ci:skip-build]: already built successfully in CI
2019-05-10 00:20:02 +02:00
K-laus 1528be93f3 samsung-gts210vewifi: use devicepkg-dev (!353)
Instead of doing it step by step in APKBUILD, use
downstreamkernel_prepare.

[ci:skip-build]: already built successfully in CI
2019-05-09 21:39:16 +00:00
K-laus 2978dfd42a samsung-gts210velte: new device (SM-T819) (!346)
device is very similar to samsung-gts210vewifi (SM-T813),
just has additional LTE modem.

Have to use gcc6 for kernel compilation, otherwise get
'Unhandled fault: alignment fault (0x96000061) at 0xffffff8001787f4c'
errors on kernel startup, and device always reboots.

[ci:skip-build]: already built successfully in CI
2019-05-09 21:33:42 +00:00
Danct12 eb0622513b xiaomi-santoni: various improvements (!335)
* Add support for osk-sdl
* Use latest commit from bitrvmpd
* Add udev rules, scripts for charging led
* Add (hacky) udev rule for jack detection
* Add pulseaudio files
* Silence substream kernel messages
* Change charging script path
* Move adsp-audio dependency to firmware to avoid watchdog

[ci:skip-build]: already built successfully in CI
2019-05-09 22:56:12 +02:00
Lofenyy Wilson 28cc2ecfe4 samsung-kylessopen: Modernized APKBUILD (!345)
Kernel repository changed to backup, see this new workflow:
https://wiki.postmarketos.org/wiki/How_to_properly_backup_downstream_kernels

[ci:skip-build]: already built successfully in CI
2019-05-08 22:19:41 +02:00
Robert Yang acf5e6d394 main/mesa-grate: replace libelf-dev dependency for elfutils-libelf (!356)
libelf-dev has been removed in the upstream repos.

[ci:skip-build]: already built successfully in CI
2019-05-08 21:17:37 +02:00
Robert Yang d559a0fe7e main/mesa-grate: Add python2 to makedepends (!356)
Fixes missing python2 dependency. For some reason it was building fine
in the past. Some other dependency must have been pulling python2.
2019-05-08 14:36:15 -04:00
PureTryOut a84c8ce6f8 temp/mesa*: replace libelf-dev dependency for elfutils-libelf 2019-05-08 15:24:45 +00:00
Martijn Braam 5cf1ee92e8 pine-dontbeevil: Fixed sound and battery (!348)
* Fixed audio
* Fixed battery handeling
* Added fix for touchscreen not working for everyone
* Use newer upstream kernel

[ci:skip-build]: won't finish in time, Martijn made sure that it builds.
2019-05-06 22:01:34 +00:00
Luca Weiss 4ce7075d67 fairphone-fp1: fix touchscreen and display (!343)
Install msm-fb-refresher, it's needed for the screen to refresh.
Update the kernel to a new commit with several patches applied to fix
the touchscreen - before it wasn't working properly.
Switch architecture from armhf to armv7.

[ci:skip-build]: already built successfully in CI
2019-05-06 22:35:34 +02:00
Luca Weiss d3d2b8dfdb main/kmscube: update to new git snapshot (!342)
Upstream also provides the meson build system now, so use it.
2019-05-06 22:21:59 +02:00
Oliver Smith d934c86f52 temp/{mozjs60,polkit}: remove
They are available in Alpine again for armhf and armv7.
Networkmanager is still missing, so we keep it it temp for now. Upstream
patch submitted: https://github.com/alpinelinux/aports/pull/7626

Related: #244
2019-05-06 22:20:19 +02:00
Oliver Smith 271aba5d0f temp: build networkmanager for armhf, armv7
Due to the following dependency chain, it is currently not available
in Alpine for armhf and armv7. This breaks postmarketos-base.

postmarketos-base -> networkmanager -> polkit -> mozjs60

This can be reverted, when networkmanager is back for arm{hf,v7} in
Alpine. The mozjs60 arm fix is from here:
https://github.com/alpinelinux/aports/pull/7561

Related: #244
2019-05-05 17:54:58 +02:00
Oliver Smith 230433ad9d various: pkgrel bump after icu-dev upgrade
Rebuild to fix missing dependencies:
so:libicui18n.so.63, so:libicuuc.so.63

Currently we are facing another upstream compatibility issue with
Alpine, which is why CI will fail: polkit and therefore
networkmanager don't exist for armhf, armv7. See #244 for details.
2019-05-05 12:08:54 +02:00
Zhuowei Zhang f3bd8707a1 linux-google-crosshatch-mainline: rebase to 5.1-rc7 (!341)
This rebases the Pixel 3 XL patches on top of current
linux master branch (5.1-rc7 + a few more commits since then)

Also enabled KASLR in the defconfig.

[ci:skip-build]: this kernel takes more than one hour to build.
2019-05-03 00:17:34 +02:00
Federico Amedeo Izzo ba8a3ac375 lg-e610: new device (LG Optimus L5) (!340)
The phone boots postmarketOS and shows logo.
USB networking and flashing via fastboot works.
Display is currently broken but I will try to fix it soon.

[ci:skip-build]: already built successfully in CI
2019-05-02 22:13:44 +00:00
Martin Piatka 938fe1a52a htc-ace: Switch initfs compression to lzma (!339)
With this change the boot.img finally fits in the 4MB boot partition
making pmOS flashable

[ci:skip-build]: already built successfully in CI
2019-05-02 23:26:29 +02:00
Alexey Min 6818cd6bac postmarketos-base: add deferred-initcalls openrc service (!338)
This script triggers late initialization of some platform
drivers that cannot be probed at boot time, because for
example they use firmware blobs on partitions that are
not mounted during early kernel startup.

Disabled by default, can be enabled on per-device basis.
2019-05-02 21:07:31 +00:00
Alexey Min 7d8587a9db postmarketos-ui-plasma-mobile: add unlock-plasma helper script (!337)
Plasma lockscreen is currently hard or impossible to unlock
using phone itself, that's why you should send a command to
ConsoleKit over DBus in a shell. This script saves from extra
typing.
2019-05-01 00:11:20 +03:00
Oliver Smith 4e9d08d39e cross/gcc-*: re-generate with pmbootstrap aportgen
Adjust the depends of the GCC-8 cross compiler packages after the change
from pmbootstrap!1778. This does not have any effect (since the GCC-8
aports don't have !tracedeps in options, in contrary to the other GCC
aports we ship). But it makes sure that we don't get any changes after
running the repository maintenance script from here:
https://wiki.postmarketos.org/wiki/Repository_maintenance

[ci:skip-build]: cosmetic change, build would take too long anyway
2019-04-30 19:12:56 +02:00
Martin Piatka 8caa370611 postmarketos-mkinitfs: Support initramfs compressions other than gzip (!334)
The postmarketos initramfs is larger than android initramfs. This causes
problems on some devices like htc-ace that have a very small boot
partition (4MB in htc-ace). I've been able to make the boot image small
enough to fit by compressing initramfs using lzma.
With this change it should be possible to change the compression in
deviceinfo like this: deviceinfo_initfs_compression='lzma'
or even deviceinfo_initfs_compression='lzma -9'. When no option is
specified it defaults to 'gzip -1'.

I've also added dependencies to compression utilities for all possible
initramfs compression algorithms.
2019-04-30 17:12:33 +00:00
Martijn Braam badaed7177 pine-dontbeevil: update kernel, config, more CMA mem (!336)
* Moved more PinePhone related kernel stuff to the upstream
* Added cma=256M so the CSI subsystem doesn't throw out-of-memory errors
  when capturing at higher than 1280x720 resolutions (but it still hangs)
* Removed a lot of modules that get compiled for DVB tuners after
  enableing the camera stuff.

[ci:skip-build]: doesn't finish in time
2019-04-28 23:03:02 +00:00
km2 1788bb25a3 zte-p731a20: new device (ZTE Blade AF3) (!325)
[ci:skip-build]: already successfully built in CI
2019-04-26 22:58:24 +02:00
Oliver Smith c6e854b186 main/gcc{4,6}, cross/gcc{4,6}*: fix depends
Explicitly depend on mpc1. Our generated gcc aports use the !tracedeps
option, so we need to explicitly set the libraries it depends on.

This has mostly not been an issue, as we are installing our gcc
packages together with Alpine's gcc package, which causes the libraries
to get installed anyway.

Fixes #236.

[ci:skip-build]: takes too long to build.
2019-04-26 22:45:54 +02:00
Andrea Scarpino 0ca885b592 asus-z00t: fix nonfree_firmware's pkgdesc (!333)
Fixes: "Could not find pkgdesc of subpackage function 'nonfree_firmware'
(spaces used instead of tabs?)"
2019-04-26 22:17:27 +02:00
Oliver Smith 7a0543c414 temp/libical: remove (fix was merged upstream)
See: https://github.com/alpinelinux/aports/pull/6986
2019-04-26 21:03:49 +02:00
Oliver Smith b4ed4fce33 cross/busybox-static-*: update to 1.30.1-r1 2019-04-26 21:02:37 +02:00
Oliver Smith e91b7e780e main/pmbootstrap: update to 1.6.0
First release with crossdirect support, meaning crossdirect is stable
now!
2019-04-24 16:10:54 +02:00
Alexey Min b758c7a4b2 samsung-klte: add nonfree_firmware() to device package (!327) 2019-04-24 15:52:04 +02:00
Alexey Min 973654c90a firmware-samsung-klte: Samsung Galaxy S5 firmware (!327)
* only Wi-Fi for now (Broadcom bcmdhd)
2019-04-24 15:51:59 +02:00
Martijn Braam 74142b4d67 pine-dontbeevil: Touch and wifi (!331)
* Inverted the X-axis on the touchscreen
* Enabled the driver for the wifi/bluetooth chip and added it to the dts
* Added a horrible hack for making the touchscreen work

This also decreases the kernel version because the previous version I've
used was technically incorrect.

[ci:skip-build]: doesn't finish in time
2019-04-24 13:50:00 +00:00
Danct12 d0f5d25e4d hybris/lxc-android: patched config for the latest lxc version (!330)
The config file for container from Halium repo is outdated, and will not
load on latest version of LXC, here is the error when you start the container:

postmarketos:~$ sudo lxc-start android
lxc-start: android: confile.c: parse_line: 2447 Unknown configuration key "lxc.rootfs"
lxc-start: android: parse.c: lxc_file_for_each_line_mmap: 142 Failed to parse config file "/var/lib/lxc/android/config" at line "lxc.rootfs = /var/lib/lxc/android/rootfs"
Failed to load config for android
lxc-start: android: tools/lxc_start.c: main: 264 Failed to create lxc_container
postmarketos:~$

This pull request updates the config file, but also use the latest
commit.
2019-04-21 22:52:22 +02:00
Danct12 f05374fa1c xiaomi-santoni: rebase to 3.18.138, add firmware and audio, fix splash (!328)
device-xiaomi-santoni:
* Added initial audio support (generated by xml2ucm)
* Fixed splash screen size (720x1280), which also fixes the screen
  showing "posma"

firmware-xiaomi-santoni:
* Firmware files are added (contains ADSP and WCNSS firmwares), these
* files are from Developer ROM 03/29 by Xiaomi.

linux-xiaomi-santoni:
* Kernel updated to 3.18.138.
* Modernized GCC, it'll now compile with the latest GCC from Alpine.

[ci:skip-build]: already built successfully in CI
2019-04-21 22:39:58 +02:00
Oliver Smith ffbbe41d63 main/kernel-scripts: remove (!329)
This package was a workaround for out-of-tree modules (wireguard). We
have dropped the wireguard kernel module package already, and since
kernel-scripts is failing to build now (it would need to be updated),
let's drop it as well.

If somebody wants to bring back *and maintain* the wireguard
out-of-tree kernel module, I've documented how we had done it here:
https://wiki.postmarketos.org/wiki/Out-of-tree_kernel_modules

[ci:skip-build]: building the kernels that have been adjusted to drop
                 kernel-scripts related code would take too long for CI,
                 but I'm making sure that everything still builds before
                 merging.
2019-04-19 19:31:06 +02:00
Alexey Min 28ab7dc9f3 linux-samsung-klte: tidy up patches and add new: (!321)
* fix patch file names and reorder them properly
* add patch to fix framebuffer memory allocation
* add patch to fix compile warning for iptables plugin xt_connbytes
* add patch to properly assign MAC address for USB RNDIS
* add backport patch from upstream about O_PATH file descriptors

[ci:skip-build]: already went through successfully in CI
2019-04-18 23:19:03 +02:00
Alexey Min e4623227ef linux-samsung-klte: base downstream kernel source on lineage-14.1 branch (!321)
@drebrez originally based klte port on lineage-16.0 branch (Android 9),
but we need compatibility with Android 7.1, so use lineage-14.1 branch.

Also tidy up downstream kernel config a little bit (pass it through
pmbootstrap kconfig edit, change nothing, exit with saving).
2019-04-18 23:17:53 +02:00
Alexander Polynomdivision 548e9465f9 samsung-herolte: add wifi firmware (!309)
This adds the required firmware to allow ip link set wlan0 up, which
then enables Samsung Hero-Devices, the Galaxy S7 (herolte) and the
Galaxy S7 Edge (hero2lte), to connect to the Internet.
2019-04-18 23:08:43 +02:00
Martijn Braam 9353bca73f pine-dontbeevil: various dtb improvements (!323)
* Created seperate DTB for the devkit named sun50i-a64-dontbeevil.dts so
  it can easily be edited and the diff remains readable in gitlab
* Added patch to build the new dtb
* Added the ST LIS3MDL to the new dtb (Magnetometer)
* Added the SensorTek STK3335 to the new dtb (Proximity and ambient
  light sensor)
* InvenSense MPU-6050 to the new dtb (Accelerometer and gyroscope)
* Added CSI bus and OV5640 camera

Remaining issues:
* The STK3310 module doesn't load automatically
* Camera doesn't want to capture but does show up as /dev/video0

[ci:skip-build]: doesn't finish in time
2019-04-18 20:59:11 +00:00
Robert Yang 5aa8866347 android-recovery-installer: Use an explicit list of zip file contents (!324)
The working directory can contain other files. For example pmbootstrap uses
the same directory for generating android recovery zip files. Extra files
can end up being archived into the recovery zip.

This change explicitly passes the list of files to be archived.
2019-04-18 21:10:21 +02:00
Oliver Smith db9611cdab py3-brotlipy: bump pkgrel after soname bump
Library doesn't exist anymore, so we need to rebuild the package:
so:libpython3.6m.so.1.0
2019-04-18 20:49:58 +02:00
Betty Cooper 4c42992532 main/postmarketos-artwork-wallpapers: new wallpaper (!320)
Use new wallpaper instead of the old one, and only install one wallpaper
file.
2019-04-18 20:34:40 +02:00
Bart Ribbers 3d0b44dded kde/frameworks*: update to 5.57 (!317)
Built and tested on x86_64, everything works as expected.

[ci:skip-build]: ollieparanoid made sure, that this builds for all
                 relevant arches. With crossdirect, so that means it is
                 pretty stable now \o/
2019-04-15 21:38:24 +02:00
Luca Weiss de62525708 temp/weston: remove (!319)
Pull request was merged upstream
2019-04-15 21:20:10 +02:00
Luca Weiss 517e93edc0 temp/lightdm: remove (!319)
Pull request was merged upstream
2019-04-15 21:20:04 +02:00
Alexander Polynomdivision 8a58003d56 samsung-herolte: fix wifi firmware path (!316)
This patches the path that the kernel tries to load the Wifi chip's
firmware from. If someone with an Galaxy S7 Edge would test this -
although I have no reason to believe that it would not work on the Edge
- then this patch could also be applied to the linux-samsung-hero2lte
package.

[ci:skip-build]: already built successfully in CI
2019-04-15 20:28:26 +02:00
Oliver Smith 1031ff82a6 CI: enable crossdirect again
All bugs should be ironed out now. Let's get some more testing by
enabling crossdirect in CI again. The crossdirect feature is still only
in pmbootstrap master, not in the latest pmbootstrap release. But if it
works without problems for some time, we're ready to make a release.

This reverts commit 6e3252e401.
2019-04-14 04:11:01 +02:00
Oliver Smith 2c07f28419 cross/crossdirect: use qemu when linking (!318)
Cross linker (e.g. ld from binutils-armhf) does not support any method
of setting additional link paths, and this causes problems when building
various packages. Work around this problem by calling the qemu binary
instead of the cross binary from the native chroot, whenever we are
linking.

I have tested that this allows successfully building hello-world,
coreinfo, libhybris for armhf. So this fixes #227 and fixes #228.

Regarding performance, this is the same way as distcc does it. We would
get a performance gain if we were able to use the cross-linker. But so
far I could not figure out how to patch the binutils source to make it
work like we want to have it. Maybe I'll ask on some binutils mailing
list for advice. In the meantime, this workaround should make
crossdirect work for all use-cases, and it is still faster than the
previous distcc setup, because we can avoid the overhead of setting up
and running a ssh server locally to work around missing authentication
in distcc (see pmbootstrap!1649). Let's test this for some more time,
and then make a pmbootstrap release that rolls out crossdirect for
everyone.
2019-04-14 04:03:21 +02:00
Federico Amedeo Izzo 6b9ef9fda0 nokia-n900: The power button suspends the device in i3. (!313)
With this patch the power button (the one you use to turn it on)
suspends the device. This should allow to save more energy with respect
to just turning the screen off (slider button).

I tested myself on Nokia N900.

[ci:skip-build]: already built successfully in CI
2019-04-12 23:00:02 +00:00
Alexander Polynomdivision eadb61205e device-samsung-herolte: new device (Samsung Galaxy S7) (!314)
This is basically just the packages for the Galaxy S7 Edge (hero2lte).
I only needed to change a few Kernel config options, so that the
colors are displayed correctly. The options regarding
CONFIG_PANEL_S6E3HF4_WQHD and CONFIG_PANEL_S6E3HA3_DYNAMIC probably
solve this issue, but I modified the other options as well. I got the
differences by diffing:
arch/arm64/configs/exynos8890-{hero2lte,herolte}_defconfig

Booting, USB networking and the display work! I can't say anything about
flashing via heimdall as this tool scares me. Following what WilliamO7
wrote on the device page, I flashed it by sideloading the android
recovery zip.

[ci:skip-build]: already built successfully in CI
2019-04-13 00:25:10 +02:00
Robert Yang 77706b3b73 temp/qemu: Override upstream qemu package version (!312)
[ci:skip-build]: won't finish in time
2019-04-12 23:17:29 +02:00
Robert Yang 3f05e11467 temp/qemu: Link qemu static against jemalloc (!312)
Work around for issue #1715

Link qemu static binaries to jemalloc. This malloc implementation does not
appear to be susceptible to the deadlock after fork issue.
2019-04-12 23:16:37 +02:00
Robert Yang 1ec81fcdfe temp/qemu: Package for x86 and x86_64 only (!312)
This is package is meant to work around the qemu static deadlock while
cross-compiling.

- pmbootstrap binfmt_misc chroots on arm hosts are untested
- upstream jemalloc package has armv7 disabled. It is uncertain what is
  wrong with jemalloc for armv7.

For these reasons, disable the arm packages.
2019-04-12 23:16:37 +02:00
Robert Yang ea072f89f5 temp/qemu: Import qemu from upstream aports (!312) 2019-04-12 23:16:26 +02:00
Robert Yang d4a468c24a temp/jemalloc: Package for x86 and x86_64 only (!312) 2019-04-12 23:14:45 +02:00
Robert Yang d6fdf52351 temp/jemalloc: Import jemalloc from upstream aports unmaintained repo (!312)
Taken from upstream aports @ 7af8be0e7aab4a5fe4315fb162850fad66aa7cb0
2019-04-12 23:14:38 +02:00
Robert Yang 24814b2ccb xf86-video-opentegra: Compositing improvements (!311)
Includes pull request 51 from upstream.

[ci:skip-build]: already built successfully in CI
2019-04-12 01:03:28 +02:00
Robert Yang e66967c06e libdrm-grate: Caching improvements (!311)
Includes pull request 43 from upstream.
2019-04-12 01:02:57 +02:00
Robert Yang e752240ee7 libvdpau-tegra: Fix drawing problems on tegra30 (!311) 2019-04-12 01:02:52 +02:00
Luca Weiss a169c1335a all: remove install scripts from source (!310) 2019-04-12 00:38:38 +02:00
Martijn Braam 9b88689b9d new device: device-pine-dontbeevil (Don't be evil devkit) (!308)
UART and SSH work and HDMI works in u-boot (just like the pine-a64lts).
It should work now with display and xorg/weston works directly after
installing. Plasma mobile doesn't work directly because both kms and
fbdev are enabled and kms doesn't work yet.

linux-postmarketos-allwinner: update to 5.0.0-rc3 with patches for this
devkit, tested on this device and on pinea64lts (the only other device
using the allwinner kernel).

[ci:skip-build]: won't finish in time
2019-04-11 23:49:03 +02:00
Oliver Smith 9b6ea60690 cross/musl-*: update to 1.1.22-r0 2019-04-11 23:48:26 +02:00
Oliver Smith 467338098e temp/libical: fix db.h: No such file or directory
Fix kcalcore build error. The same fix has been submitted to Alpine.

In file included from /home/pmos/build/src/kcalcore-18.12.3/src/icalformat.cpp:45:
/usr/include/libical/icalss.h:492:10: fatal error: db.h: No such file or directory
 #include <db.h>
          ^~~~~~

Related:
* https://gitlab.com/postmarketOS/pmaports/issues/229
* https://github.com/alpinelinux/aports/pull/6986
2019-04-08 21:55:12 +02:00
Bart Ribbers 40c126b925 kde/plasma*: upgrade to 5.15.4 (!298)
[ci:skip-build]: ollieparanoid made sure that this builds for x86_64,
                 armhf, armv7, aarch64
2019-04-08 21:12:15 +02:00
Oliver Smith de7e9c1456 kde/kcalcore: rebuild after soname bump
missing depends: so:libical.so.2, so:libicalss.so.2, so:libicalvcal.so.2
2019-04-08 21:10:49 +02:00
km2 2e9beef9f2 samsung-i9003: support gcc8 (!307)
This patch forces the kernel to compile with gcc8 and includes by
default INSTALL_MOD_STRIP=1.
2019-04-08 20:45:42 +02:00
Tadeo Kondrak 1c4980bda5 htc-m7: new device (HTC One M7) (!306)
usb networking works

echo 100 > /sys/devices/platform/msm_fb.590593/leds/lcd-backlight/brightness
cat /sys/devices/virtual/graphics/fb0/modes > /sys/devices/virtual/graphics/fb0/mode

to get screen working

[ci:skip-build]: already built successfully in CI
2019-04-08 20:40:24 +02:00
Martin Piatka e4aa322e33 htc-ace: switch to armv7 (!304)
Switches htc-ace to armv7. I was able to boot to xfce and everything
seemed to work fine.

[ci:skip-build]: already built successfully in CI
2019-04-07 16:06:53 +02:00
Martin Piatka 7e742e2ca3 firmware/firmware-aosp-broadcom-wlan: add armv7 arch (!303) 2019-04-06 21:12:51 +02:00
Oliver Smith 3928475fd6 cross/grub-efi-x86: update to 2.02-15 (!302) 2019-04-06 01:30:29 +02:00
Oliver Smith dfebf60c9b CI: upstream compatibility: add grub-efi-x86 (!302)
Make sure we keep it in sync with Alpine's version.
2019-04-06 01:29:32 +02:00
Alexey Min fb784b6236 hybris/*: enable building for armv7 (!297)
[ci:skip-build]: simple arch change, building will probably take too
                 long
2019-04-06 00:29:55 +02:00
Oliver Smith 6e3252e401 CI: disable crossdirect for now (!301)
Disable it, until more bugs are ironed out (see pmaports issues,
everything related to crossdirect that is still open). Will be enabled
again soon.
2019-04-06 00:17:55 +02:00
rahmanshaber 8a22cce65e coreapps/*: update to 2.5.0 (!296)
[ci:skip-build]: already built successfully in CI
2019-04-04 23:42:38 +02:00
Nick Reitemeyer 39971739fa surftab-wintron7.0: new device (TrekStor Surftab wintron 7.0) (!290)
This device is x86_64 and has a 32-bit UEFI, so I need to install
32-bit grub (AFAIK it's the only bootloader capable of loading a 64-bit
kernel from 32-bit).

The grub-efi-x86 package has been generated with pmbootstrap.
2019-04-04 19:58:24 +02:00
Oliver Smith 9bf7948303 pmaports.cfg: bump version (!299) 2019-04-03 21:26:12 +02:00
Oliver Smith 958f597a6c cross/crossdirect: use ccache, execve, -Werror (!299)
Instead of running compilers directly, let them go through the native
ccache binary. Note that it will still use the foreign arches cache dir
because the native cache dir would be at /native/home/pmos/.ccache.

Use execve instead of setenv and execv, because that didn't work with
LD_LIBRARY_PATH (ccache was complaining that it couldn't load zlib).

Enable -Werror, because we are maintaining this program and it helps
us catching bugs early.
2019-04-03 21:26:12 +02:00
Oliver Smith 9c90da7969 ccache-cross-symlinks: all arches, relative, clang (!299)
Create symlinks for all supported arches (armhf, armv7, aarch64, x86_64,
x86), not only armhf and aarch64. Skip creating symlinks for the arch
that the package gets built for, so we can include x86_64 in the list
without conflicting with the ccache package from Alpine.

Link to ../../../bin/ccache instead of /usr/bin/ccache, so it works
properly with crossdirect (where we mount the native chroot to /native
in the foreign chroot).

Add symlinks for clang and clang++.
2019-04-03 21:26:12 +02:00
Oliver Smith f540943f0c main, unity8: bump pkgrels after boost upgrade
$ pmbootstrap pkgrel_bump --auto
Increase 'libphonenumber' pkgrel (5 -> 6), missing depend(s): so:libboost_system-mt.so.1.67.0, so:libboost_thread-mt.so.1.67.0
Increase 'unity-system-compositor' pkgrel (0 -> 1), missing depend(s): so:libboost_system-mt.so.1.67.0
Increase 'trust-store' pkgrel (0 -> 1), missing depend(s): so:libboost_filesystem-mt.so.1.67.0, so:libboost_program_options-mt.so.1.67.0, so:libboost_system-mt.so.1.67.0
Increase 'process-cpp' pkgrel (0 -> 1), missing depend(s): so:libboost_iostreams-mt.so.1.67.0
Increase 'mir' pkgrel (0 -> 1), missing depend(s): so:libboost_filesystem-mt.so.1.67.0, so:libboost_iostreams-mt.so.1.67.0, so:libboost_program_options-mt.so.1.67.0, so:libboost_system-mt.so.1.67.0
Increase 'location-service' pkgrel (0 -> 1), missing depend(s): so:libboost_filesystem-mt.so.1.67.0, so:libboost_program_options-mt.so.1.67.0, so:libboost_system-mt.so.1.67.0
Increase 'ubuntu-download-manager' pkgrel (0 -> 1), missing depend(s): so:libboost_log-mt.so.1.67.0, so:libboost_program_options-mt.so.1.67.0, so:libboost_system-mt.so.1.67.0, so:libboost_thread-mt.so.1.67.0
Increase 'dbus-cpp' pkgrel (0 -> 1), missing depend(s): so:libboost_filesystem-mt.so.1.67.0, so:libboost_program_options-mt.so.1.67.0, so:libboost_system-mt.so.1.67.0

[ci:skip-build]: I doubt that this would finish in time
2019-04-03 21:25:34 +02:00
Luca Weiss 40d110fcc9 Change default NetworkManager DHCP client to dhcpcd (!278)
Remove the override in ouya-ouya (and in postmarketos-base) and add an
override for raspbery-pi3

Fixes #210
2019-03-29 14:53:47 +01:00
Federico Amedeo Izzo 97fd10aed4 oneplus-bacon: fix incorrect framebuffer refresh rate in Xorg (!294)
After this patch is applied, the phone boots in Xorg UIs like XFCE.

[ci:skip-build]: already built successfully in CI
2019-03-29 10:19:38 +01:00
Federico Amedeo Izzo 1ee8db41db samsung-klte: fix swapped red and blue (!291)
The problem behind swapped red and blue is inverted byte order in
framebuffer driver pixel format.
This patch sets the correct byte order in the framebuffer driver,
solving the swapped red and blue problem.

[ci:skip-build]: already built successfully in CI
2019-03-29 07:23:27 +00:00
Bart Ribbers e3b1796552 kde/powerdevil: fix libexec install path (!293)
Change the patch to reflect expected location in
plasma-phone-components.

[ci:skip-build]: already built successfully in CI
2019-03-29 08:12:23 +01:00
Jakub Strzelecki b19509a8fa motorola-montana: new device (Motorola Moto G5s) (!286)
Initial starting point to get the device booting. The downstream kernel
repository can be improved, see discussion in the merge request.

[ci:skip-build]: already built successfully in CI
2019-03-29 08:04:13 +01:00
silver 568e035837 galaxy s relay support 2019-03-28 20:51:18 +00:00
Luca Weiss 874a309eed fairphone-fp2: fix swapped red and blue (!292)
Fixes the problem described in #211
2019-03-28 15:06:54 +00:00
Danct12 95198e12e9 xiaomi-santoni: use msm-3.18 upstream kernel (!289)
device-xiaomi-santoni: use mdss-fb-init-hack to refresh the display, and
swapfile to fix "out of memory" when loading proprietary blobs.

I have tested the kernel, USB Networking, Display, USB OTG, Wi-Fi (with
proprietary blobs) works fine, through I haven't figured out how to get
Bluetooth and among of other stuff to work. Audio works. For more
information on how to get Wi-Fi and Audio to work, check out the wiki
page for this device, I have updated it.

[ci:skip-build]: already built successfully in CI
2019-03-26 23:21:06 +01:00
Oliver Smith c6aae11598 cross/musl-*: update to 1.1.21-r2 2019-03-26 23:19:56 +01:00
Mis012 481bd4493b asus-me176c: update kernel repository name (!251)
[ci:skip-build]: building takes longer than one hour
2019-03-25 09:50:30 +01:00
Federico Amedeo Izzo 38dbafb98e oneplus-one: fix swapped red and blue (!287)
The problem behind swapped red and blue is inverted byte order in
framebuffer driver pixel format.
This patch sets the correct byte order in the framebuffer driver.

The previous workaround patch is removed because it fixes improperly
the red-screen issue, causing the swapped red and blue problem
that this commit solves

[ci:skip-build]: already built successfully in CI
2019-03-25 09:43:16 +01:00
Oliver Smith 32a6db0ca6 temp/readline: remove (use upstream again)
Readline has been upgraded in upstream, the original reason why it was
forked is not necessary anymore. See:
https://gitlab.com/postmarketOS/pmaports/issues/217#note_153463712
2019-03-25 09:31:49 +01:00
Oliver Smith b6ec855077 pmaports.cfg: bump version to 3 (!222)
This version has the "crossdirect" package, which will be required for
the new pmbootstrap code that uses the crossdirect compilation method by
default.
2019-03-23 01:06:42 +01:00
Zhuowei Zhang 68c1d5d2bd cross: add crossdirect package (!222)
A set of wrapper executables that launch native cross compilers inside
foreign chroots. Speeds up cross compilation a lot, compared to the
distcc-sshd method.
2019-03-23 01:05:40 +01:00
Oliver Smith 0d966c7a6f cross/musl-*: update to 1.1.21-r1 2019-03-20 08:23:39 +01:00
knuxfanwin8 1672f9f5d3 samsung-lt01wifi: new device (Samsung Galaxy Tab 3 8.0) (!283)
[ci:skip-build]: already built successfully in CI
2019-03-20 08:14:38 +01:00
Bart Ribbers def0dac79f kde/plasma*: update to 5.15.3 (!277)
Built and tested on x86_64.

[ci:skip-build]: ollieparanoid made sure that this builds for all
                 arches
2019-03-18 09:37:12 +01:00
Martijn Braam 4c222eee7b main/postmarketos-ui-i3wm: Added xinput dependency (!282)
This adds the missing xinput dependency that's needed for lock.sh
2019-03-18 06:47:48 +00:00
Robert Yang 2651b565e0 linux-ouya-ouya-mainline: Update kernel (!281)
- Initial memory frequency scaling driver
- Enable eMMC 1.8v DDR signaling mode
- Limit CPU frequency to avoid overheating
- Fix crash in xf86-video-opentegra driver

[ci:skip-build]: already built successfully in CI
2019-03-18 07:36:16 +01:00
Federico Amedeo Izzo eebeb32a6c device-nokia-n900: Increase simple terminal font size to 12 (!280)
Also hardcode st instead of i3-sensible-terminal, because the font
parameter may not work with all terminals, and we want to use st on the
n900 anyway.
2019-03-16 12:47:56 +00:00
PureTryOut 2a0dcdac5a kde/frameworks*: update to 5.56 (!275)
Built and tested on x86_64.

[ci:skip-build]: ollieparanoid made sure that this builds for
                 x86_64, aarch64, armhf, armv7
2019-03-15 17:46:37 +00:00
Federico Amedeo Izzo 9c04dc4a1b kde/kwin: add patch to handle fbdev properly (!279)
This patch applies commit 93b7eea67db418751e7fe4a86bc19430c153588b
from upstream kwin. Remove this patch once kwin stable used by
postmarketOS will include the upstream commit.

[ci:skip-build]: already built successfully
2019-03-15 18:38:10 +01:00
Luca Weiss 8b9998fc64 unity8/mir: update to 1.1.2, update related pkgs (!276)
Mir 1.1.2 builds without any out-of-tree patches, which is great.
I've updated a few other unity8-related packages too.

[ci:skip-build]: ollieparanoid made sure, that everything builds.
2019-03-14 06:34:40 +00:00
PureTryOut 411746babf kde/applications*: update to 18.12.3 (!274)
[ci:skip-build]: ollieparanoid made sure that this builds for all
                 arches
2019-03-13 08:32:18 +00:00
Konrad Dybcio 9efaad6d21 firmware: Move fw-sony-amami to fw-sony-rhine (!271)
Rename the firmware so it's clear that it's specific to the platform and
not only the amami device. Sony rhine platform includes as follows:
Xperia Z1 (honami)
Xperia Z1 Compact (amami)
Xperia Z Ultra (togari)
2019-03-12 06:49:09 +00:00
Luca Weiss 7a604328ac fairphone-fp2: switch to armv7 (!273)
[ci:skip-build]: already built successfully
2019-03-11 09:50:32 +01:00
Michal Guba 3a9ab3c7e6 samsung-klte: Switch to armv7 (!272)
Tested. Works fine on klte. Boots to weston.

[ci:skip-build]: already built successfully
2019-03-11 08:41:05 +00:00
RONTheCookie bc6d1dae35 lg-d722: new device (LG G3 Beat) (!267)
USB networking is functional.

[ci:skip-build]: already built successfully
2019-03-11 09:09:10 +01:00
Clayton Craft d5888c52cc device-purism-librem5dev: Depend on include mesa-purism-gc7000 packages (!236)
This changes the librem5dev package to depend on the new
mesa-purism-gc7000 packages, which provide support for the vivante
gc7000 GPU in this device.

[ci:skip-build]: already built successfully
2019-03-11 08:50:48 +01:00
Clayton Craft 9ac0421a34 mesa-purism-gc7000: new pkg for purism mesa fork for gc7000 (!236)
This package builds Purism's Mesa fork that adds support for the Vivante
GC7000 GPUs (found in the imx8m / Librem5 [incl. dev kit])
2019-03-09 21:26:24 -08:00
Oliver Smith e086865713 temp/mesa: only build for armhf armv7 aarch64
Make it possible to use Alpine's mesa for x86 and x86_64.
Closes https://gitlab.com/postmarketOS/pmbootstrap/issues/1741
2019-03-10 02:51:02 +01:00
Oliver Smith a2200d5d15 pmaports.cfg: min pmbootstrap version 1.5.1
This version allows us to override mesa only for the arm arches, still
using Alpine's package for x86_64 and x86. This is currently needed, as
described here:
https://gitlab.com/postmarketOS/pmbootstrap/issues/1741
2019-03-10 02:46:18 +01:00
Oliver Smith 7ab24cb685 pmbootstrap: update to 1.5.1 2019-03-10 02:45:58 +01:00
Robert Yang e0b9afc15e device-ouya-ouya: Add Ouya mainline kernel (!269)
[ci:skip-build]: already built successfully in CI
2019-03-10 02:19:57 +01:00
Robert Yang 8f7ee135c3 device-ouya-ouya: Add NetworkManager config (!269)
Makes dhcp work on mainline and downstream kernel.

Disables p2p0 on downstream kernel. This isn't working on either kernel
anyways. It breaks wifi on the downstream kernel.
2019-03-10 02:19:51 +01:00
Robert Yang e29c8ede3d device-ouya-ouya: Set cooling governor in initfs hook (!269)
This governor is meant for simple on/off cooling fans.
2019-03-10 02:19:51 +01:00
Robert Yang b567dadd68 New aport linux-ouya-ouya-mainline (!269)
Mainline based kernel for Ouya
2019-03-10 02:19:51 +01:00
Robert Yang 3f07921f5d linux-ouya-ouya: Set wifi firmware path (!269) 2019-03-10 02:19:51 +01:00
Robert Yang 6b7e88b7ed device-ouya-ouya: Add firmware package (!269) 2019-03-10 02:19:51 +01:00
Robert Yang 291d28fe28 New aport firmware-ouya-ouya (!269)
Add Ouya device firmware package
2019-03-10 02:19:51 +01:00
Robert Yang 0b9450abe5 linux-ouya-ouya: Convert to armv7 (!269) 2019-03-10 02:19:50 +01:00
Robert Yang 60f4b70c71 device-ouya-ouya: Convert to armv7 (!269) 2019-03-10 02:19:45 +01:00
Oliver Smith f1121b5e07 cross/musl-*: regenerate pmaports (!270)
Regenerated with:
$ pmbootstrap aportgen musl-armhf musl-aarch64 musl-aarch64

This new version fixes the build for gitlab-ci and builds.sr.ht:
https://gitlab.com/postmarketOS/pmaports/issues/26
2019-03-10 02:01:23 +01:00
Matthias Berndt 83bdddad4c postmarketos-base: nl80211 before wext in wpa_supplicant (!264)
Fixes wifi on htc-vision.
2019-03-09 22:33:33 +01:00
Martin Piatka 9150a7c966 htc-ace: patch framebuffer to report refresh rate of 60Hz (!268)
This allows Xorg to configure display mode correctly.

[ci:skip-build]: already built successfully
2019-03-09 22:17:41 +01:00
Konrad Dybcio 3fb645e916 sony-honami: Switch to armv7 (!266)
Tested working on a c6903.

[ci:skip-build]: already built successfully CI
2019-03-09 19:43:36 +00:00
Matthias Berndt a6c94af6d2 htc-vision: fix on-screen keyboard for full-disk encryption (!259) 2019-03-09 19:53:28 +01:00
Bhushan Shah 70d0fe5272 plasma-mobile: Fix the virtualkeyboard for mobile (!262)
Without QT_QUICK_CONTROLS_MOBILE=true, kwin would assume it is on
desktop with touchscreen and would try to show resize overlay. which
doesn't work on phone.

Fixes #206
2019-03-08 11:40:20 +00:00
PureTryOut a0eb18e1e6 main/postmarketos-ui-plasma-mobile-extras: new aport (!214)
This takes over all extra dependencies from Plasma Mobile.

[ci:ignore-count]
2019-03-08 09:50:01 +01:00
PureTryOut d0a3ce3097 kde/plasma-videoplayer: new aport (!214) 2019-03-08 09:50:01 +01:00
PureTryOut 3daead037b main/kaidan: new aport (!214)
Requires new aport main/qxmpp
2019-03-08 09:49:25 +01:00
PureTryOut 6f3635fc24 main/nota: new aport (!214) 2019-03-08 09:43:32 +01:00
PureTryOut 2829d65e98 main/buho: new aport (!214) 2019-03-08 09:43:32 +01:00
PureTryOut 05358f9a5f kde/calindori: new aport (!214) 2019-03-08 09:43:32 +01:00
PureTryOut 8a666ce1a9 kde/qmlkonsole: new aport (!214)
This aport replaces qmltermwidget, which is now used as a submodule
instead. kde/qmltermwidget is moved to main/qmltermwidget and uses a
different upstream source, and Index is updated to use it from it's new
source
2019-03-08 09:43:32 +01:00
PureTryOut 2958364ce0 kde/plasma-angelfish: update to latest git master (!214)
Also cleaned up the packaging by removing unnecessary cmake variables
2019-03-08 09:43:32 +01:00
Clayton Craft e274604193 temp/mesa: Build tag and include mesa-xatracker (!261)
This updates the PKGBUILD to build tags instead of the release branch
(which will see commits until the specific release is EOL),

This commit also adds building the mesa-xatracker package.

[ci:skip-build]: already built successfully in CI
2019-03-08 07:54:47 +01:00
Oliver Smith 233a401645 ouya: blacklist partitions to avoid brick (!247)
Thanks to Robert Yang's pmbootstrap patch, we can now avoid flashing
anything to the boot and recovery partition of the Ouya. With this
patch, the latest pmbootstrap will refuse to do so with:

ERROR: 'boot' partition is blacklisted from being flashed! See the Ouya device wiki page for more information.
2019-03-08 07:47:34 +01:00
Robert Yang e76bd07487 postmarketos-base: Make NetworkManager conf more easily overridable (!260)
Later conf files override earlier ones. With this change, device specific
packages can ship their own NetworkManager configs that override the
postmarketos config.

Example: 10-samsung-p4wifi.conf would override 00-postmarketos.conf
2019-03-07 11:09:05 -05:00
Federico Amedeo Izzo c913c48c19 oneplus-bacon: redscreen kernel patch / msm fb refresher (!258)
Applied red screen kernel patch as described in:
https://wiki.postmarketos.org/wiki/Troubleshooting:display

Effectively fixes the red screen on Weston. Added msm-fb-refresher to
APKBUILD to fix display refreshing.

The display now works properly in Weston, but unfortunately the screen
is blue in Plasma Mobile, and X11 crashes in XFCE.

[ci:skip-build]: already built successfully in CI
2019-03-07 10:40:09 +01:00
foldedcascode 2385f68a02 modem/modem-qcom-msm-mainline-common: add armv7 to arch options (!257)
[ci:skip-build]: already built successfully
2019-03-07 10:34:14 +01:00
foldedcascode 88b303268e firmware/firmware-adreno: add armv7 to arch options (!257) 2019-03-07 10:34:09 +01:00
foldedcascode e1dda38396 lg-hammerhead: switch arch to armv7 (!257) 2019-03-07 10:34:09 +01:00
Oliver Smith d0cbf68aec temp/mesa: fix checksum of source tarball 2019-03-07 10:30:19 +01:00
Clayton Craft 6dd3ef2fcb mesa: Add new package tracking newer Mesa version (!256)
This adds a Mesa package overriding Mesa in Alpine, and:

1) builds a much newer version of Mesa than what is found in Alpine (by
*not* building amd/radeonsi support, so no dependency on llvm).

2) builds Mesa with tegra and etnaviv drivers (note, as of now, the
librem5 devkit gpu is not supported in the etnaviv driver here)

This breaks "pmbootstrap qemu" for some people, use --host-qemu as
workaround for now (a fix will be available soon):
https://wiki.postmarketos.org/wiki/Troubleshooting:QEMU#Using_QEMU_from_the_host_system

Since this also fixes the blackscreen bug on lg-hammerhead, the
trade-off with the qemu bug is worth it.

[ci:skip-build]: already built successfully in CI
2019-03-07 10:00:10 +01:00
Clayton Craft 8c9b01ce8e libdrm: Add new package tracking newer libdrm (!256)
This adds a package overriding the libdrm in Alpine with a newer
version, and also building libdrm with support for experimental devices
(etnaviv and tegra).
2019-03-07 09:53:01 +01:00
Pedro Ângelo 9c2ce7b1a1 asus-grouper: update kernel wifi firmware path (!252)
[ci:skip-build]: already built successfully in CI
2019-03-05 09:34:26 +01:00
Pedro Ângelo 454b28e421 asus-grouper: create nonfree firmware subpackage (!252)
With this firmware I can connect to my AP using wpa_supplicant, ping
servers and fetch files normally. However the driver also brings up the
p2p0 interface on boot and it seems to conflict with wlan0. So to test
the wireless we need to disable p2p0 and stop the wpa_supplicant service
(because it attaches itself to p2p0 on boot):

$ sudo ip link set p2p0 down
$ sudo rc-service wpa_supplicant stop
$ wpa_passphrase <your ESSID> <your password> > ./wpa_config
$ sudo wpa_supplicant -B -Dnl80211 -iwlan0 -c./wpa_config
$ sudo udhcpc -i wlan0
$ ping postmarketos.org
PING postmarketos.org (188.166.143.8): 56 data bytes
64 bytes from 188.166.143.8: seq=0 ttl=42 time=41.604 ms
64 bytes from 188.166.143.8: seq=1 ttl=42 time=56.022 ms
64 bytes from 188.166.143.8: seq=2 ttl=42 time=54.911 ms
64 bytes from 188.166.143.8: seq=3 ttl=42 time=54.241 ms
...
$ sudo apk update
fetch http://postmarketos.brixit.nl/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/armhf/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/armhf/APKINDEX.tar.gz
v20190228-49-gbc0f9441b0 [http://dl-cdn.alpinelinux.org/alpine/edge/main]
v20190228-41-g6ee930cc6c [http://dl-cdn.alpinelinux.org/alpine/edge/community]
v20190228-48-g67283cdbf6 [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
OK: 13694 distinct packages available
2019-03-05 09:32:50 +01:00
Robert Yang d079a3d0de linux-samsung-p4wifi: Update to linux v5.0 and switch to armv7 (!254)
[ci:skip-build]: already built successfully in CI
2019-03-05 09:20:40 +01:00
Robert Yang ebfbbacefd device-samsung-p4wifi: Switch to armv7 (!254) 2019-03-05 09:18:34 +01:00
Robert Yang 24f7935c06 device-samsung-p4wifi: Change name of dtb to tegra20-p4wifi (!254) 2019-03-05 09:18:03 +01:00
Robert Yang f49cab175e device-samsung-p4wifi: Make sound input work (!254)
ALSA configs are created based on downstream driver code and wm8994
datasheet.
2019-03-05 09:18:03 +01:00
Robert Yang bf9b3875a1 device-samsung-p4wifi: Add more mesa-grate subpackage dependencies (!254) 2019-03-05 09:17:58 +01:00
Bhushan Shah bfcae57384 kde/kwin: Disable building tests as well (!243)
We specify !check option to not run kwin tests, might as well disable
building them, as they take about 50% of compile time.

[ci:skip-build]
2019-03-05 09:04:15 +01:00
PureTryOut 152dfb2850 kde/plasma*: update to 5.15.2 (!243) 2019-03-05 09:04:15 +01:00
Oliver Smith 3030c00ba2 CI: check_mr_settings.py: fix check for same repo (!255)
Do not crash when a MR was made from the same repository, because the
"allow_maintainer_to_push" key does not exist in the GitLab API's
output. Check first if the "source_project_id" is the same as the
"target_project_id", and if it is, do not try to access
"allow_maintainer_to_push" at all.
2019-03-05 09:00:23 +01:00
Pedro Ângelo 81cee38610 asus-grouper: modernize device package (!253)
Updated the device-asus-grouper package to use devicepkg-dev.

I've tested the resulting image and it builds, boots and has a working
touchscreen (in Weston)

I've also noticed that the device reboots itself at times, both in the
USB ssh console and in Weston. This seems to be a known issue but I
don't know how prevalent it was before.
2019-03-04 09:47:49 +01:00
Oliver Smith 125ab01876 pmbootstrap: update to 1.5.0 2019-03-03 10:45:39 +01:00
Clayton Craft 45fd30fa32 uuu: update to 1.2.91 (!245)
This seems to resolve some issues present on the previous version
2019-03-02 10:43:33 -08:00
Clayton Craft 20e1366cc4 device/device-purism-librem5dev: add support for using uuu flasher (!245) 2019-03-02 10:43:26 -08:00
Clayton Craft 2a678ef435 device/u-boot-librem5dev: Use defconfig compatible with uuu (!245)
The defconfig required for using the uboot image with uuu is different,
since it required the DDR training to be built into the image itself.
2019-03-01 16:53:33 -08:00
Clayton Craft e4d9e37fda device/u-boot-librem5dev: update m4 image (!245)
The old image is no longer available
2019-03-01 16:53:33 -08:00
Bhushan Shah f6c9cbdcc1 u-boot-librem5dev: add !tracedeps in options (!245)
it allows native cross-compile to be used.
2019-03-01 16:53:33 -08:00
rahmanshaber 8909e932d0 coreapps/*: update to 2.4.0 (!249)
[ci:ignore-count]
2019-03-01 09:42:01 +01:00
Oliver Smith e8a7926eb6 CI: check if maintainers can write to MR branch (!248)
Check if users activated the 'Allow commits from members who can merge
to the target branch' option in their MRs.

Add the "only" parameter to each job in .gitlab.yml, so the pipeline
can properly run in a "merge request specific context" and give us the
environment variable that contains the MR ID.
2019-02-28 17:54:27 +01:00
Bhushan Shah d64c80992d temp/u-boot: use !tracedeps to allow native cross compile (!246)
[ci:skip-build]: CI build fails due to taking one hour or more, which is
                 what the related pmbootstrap patch wants to resolve ;)
2019-02-28 17:47:28 +01:00
Sergey Larin 98197693f5 samsung-i927: switch to armv7 (!238)
Since mesa-grate is armv7 now, we can switch too.

[ci:skip-build]: already built successfully in CI
2019-02-28 15:22:56 +01:00
Sergey Larin 16b3556ffa samsung-i927: disable BPFILTER (!238)
I don't know why build fails on gitlab, I have not changed anything
in kernel. Anyway, I don't remember why I enabled this, so I guess it's safe
to disable this option.
2019-02-28 15:22:20 +01:00
Sergey Larin a04ac6361b samsung-i927: add voice config (!238) 2019-02-28 15:18:52 +01:00
Sergey Larin 53d13cb4c8 samsung-i927: various improvements (!238)
- Bluetooth is now working
- Audio works too (speaker/headphones/earpiece/mic - internal and headset)
- Keyboard layout for X11
- Xorg config for rotated screen
- Suspend issues fixed (tested on MATE)
- OTG bindings updated - not working yet
2019-02-28 15:18:50 +01:00
JuniorJPDJ 67ceee4079 temp/dhcpcd: fix for old kernels (!228)
Fork the package from Alpine and undefine IFA_F_NOPREFIXROUTE during
compilation, so it works with the old downstream kernels that do not
have this feature yet.
2019-02-28 13:43:28 +01:00
Oliver Smith 17dae7d98c cross/gcc4-{aarch64,armv7}: add generated aports
Make it possible to build old kernels with gcc4 for armv7 and aarch64.

The packages have been generated with (as usually):
$ pmbootstrap aportgen gcc4-aarch64 gcc4-armv7

[ci:skip-build]: I have tested that this builds locally.

Fixes #193.
2019-02-28 13:29:03 +01:00
Federico Amedeo Izzo e48b212fdd nokia-n900: add italian keyboard layout (!244) 2019-02-28 10:19:54 +01:00
PureTryOut 77598f47f2 kde/{framework,plasma-}integration: new aports (!203)
These packages allow better integration of applications with the KDE
workspace.

[ci:skip-build]: already built successfully in CI, and ollieparanoid
                 made sure that it builds for x86_64, aarch64, armhf
2019-02-28 08:56:25 +00:00
Matthias Berndt 4f6f417089 htc-vision: make wifi work and disable Kineto GAN (!225)
I didn't get it to work with NetworkManager, but it does work with
connman. Disable Kineto GAN, which caused various commands to misbehave
(just like it did on the htc-ace).

[ci:skip-build]: already built successfully in CI
2019-02-28 09:49:11 +01:00
PureTryOut 27a56b4f18 main/pmbootstrap: update dependencies 2019-02-28 08:40:39 +00:00
Oliver Smith 946328507b CI: add "ci:ignore-count" and "ci:skip-build" (!210)
Allow skipping the "too many packages changed" check by specifying
"ci:ignore-count" in the commit message.

Allow skipping the package build step by specifying "ci:skip-build"
in the commit message. In contrary to the usual "skip ci" method,
this will still run all the other CI checks.
2019-02-28 09:34:43 +01:00
Oliver Smith 11d7172334 main/wireguard-postmarketos-stable: remove
This isn't building anymore, because linux-postmarketos-stable has been
switched from armhf to armv7 in pma!240.

We could change the arch of wireguard-postmarketos-stable too, but the
package is not maintained at all, and I doubt that anybody is using it.
So I'm dropping it. If there are any users, please step up to maintain
the package.
2019-02-27 21:27:45 +01:00
Zhuowei Zhang 7df2c93459 main/postmarketos-mkinitfs: support verbose boot (!234)
Adds a new initfs hook, verbose-initfs, which doesn't do anything on its
own. Modify postmarketos-mkinitfs to check if this hook is installed and
if so run `set -x`.

It's done this way so verbose boot is enabled as early as possible,
before hooks are loaded.

Tested on the qemu-aarch64 device.

- pmboostrap initfs hook_add verbose-initfs
- pmbootstrap qemu --arch aarch64
- confirmed that commands are echoed to the console
2019-02-27 21:02:02 +01:00
Luca Weiss 624c046cd4 main/*, unity8/*: update various unity8 packages (!221)
Everything seems to be fine in QEMU.

[skip ci]: too many packages have changed
2019-02-27 19:10:30 +01:00
Luca Weiss 7896439813 testcases: run kconfig check again (!209) 2019-02-27 19:03:41 +01:00
Zhuowei Zhang ba902038ca google-crosshatch: add WIP mainline kernel (!226)
This is tested to boot on google-crosshatch, following these
instructions:

$ pmbootstrap init, choose the mainline kernel
$ pmbootstrap install --no-fde
$ pmbootstrap initfs hook_add debug-shell
(enter fastboot mode on the device)
$ fastboot set_active a
$ fastboot flash dtbo_a ~/.local/var/pmbootstrap/chroot_rootfs_google-crosshatch/boot/dtbo-google-crosshatch-mainline.img
$ pmbootstrap flasher boot

And you should get telnet after a while. This kernel takes a long time
to build, so [skip ci]. I can confirm it builds locally.

Note that this patch adds the mainline dtb path to deviceinfo. But the
parameter gets ignored on the downstream kernel, so it's fine to keep it
in the shared deviceinfo.

Mainlining this device is work in progress, details at:
https://gitlab.com/postmarketOS/pmaports/issues/153
2019-02-27 18:31:51 +01:00
PureTryOut 2f06979a09 kde/plasma-phone-components: update to latest git (!218)
The quick settings in the top panel now opens the Plasma Settings
applications. With this change the NetworkManager configuration can now
only handle Wi-Fi. This isn't a problem on any phone, but in Qemu
you'll have to connect to the network via nmtui in a terminal.

[skip ci]: ollieparanoid made sure that this builds for all arches.
2019-02-27 15:13:27 +01:00
PureTryOut 9384be0e78 kde/plasma*: update to 5.15.1 (!218) 2019-02-27 15:13:27 +01:00
PureTryOut 62d0b719ad kde/plasma*: update to 5.15.0 (!218)
Also cleaned up the APKBUILDs
2019-02-27 15:13:27 +01:00
Martijn Braam f5b9af638e main/linux-postmarketos-stable: Fix ARMv7
This makes the linux-postmarketos-stable kernel generate an armv7 package instead of armhf. The contents
of the package were armv7 already but now it can be correct with the new Alpine support.
2019-02-27 14:09:53 +00:00
Luca Weiss 156aac8199 testcases: support system-wide pmbootstrap install (!208)
Fix this error when installing pmbootstrap with pip and running the
pmaports.git testcases:

ERROR: 'pmbootstrap' is not a symlink to pmbootstrap.py
2019-02-27 09:43:18 +01:00
ryang 2dc0718ddd grate-driver: Update to more recent revision and build for ARMv7 (!241)
Changes:
- Accelerated screen rotation
- Optimizations to buffer copies
- Pull mesa cache buffer size patch from upstream AlpineLinux mesa aport
2019-02-26 17:24:26 +00:00
Piotr Halama 3ed0baa39a nokia-frt: add device 2019-02-26 15:43:27 +00:00
Martijn Braam 021640f04b cross/gcc-*: update to 8.3.0-r0 2019-02-26 13:22:07 +01:00
Martin feae4a67f8 htc-ace: Disable Kineto GAN driver (!223)
This driver caused some commands to misbehave (#1531)
2019-02-25 23:37:58 +00:00
Bhushan Shah e9f8f27b51 linux-purism-librem5dev: Disable CONFIG_FW_LOADER_USER_HELPER (!237)
When working on Librem5 devkit we had issue with touchscreen driver not
probing fast enough and taking ~70 seconds to finish initialization.

Touchscreen driver for the Librem5 devkit uses goodix driver, roughly
speaking device initialization is done in following sequence,

- start kernel and load driver
- attempt to request firmware
- if no firmware is found use defaults value
- initialize touchscreen

Now, on Librem 5 no firmware is provided (of course!) which makes 2nd
step 4 step process,

- attempt to load firmware at initramfs level
- fail, wait for it userspace to finish loading
- userspace attempts to load firmware
- fail and tell kernel to stop looking for firmware.

Step 2 to 4 is done after udev is loaded in userspace, which easily
takes 40-50 seconds. Since Purism Librem 5 devkit is never going to have
userspace level firmware, it is safe bet to disable this altogether.

[skip ci] tested locally and this is going to take more then hour on CI
and fail
2019-02-25 20:29:00 +00:00
clayton craft a38f1fb092 device-purism-librem5: Disable supertile for mesa/etnaviv 2019-02-24 14:24:20 +00:00
PureTryOut 3b0f06c3a8 kde/applications: update to 18.12.2 (!213)
[skip ci]: ollieparanoid made sure that everything builds for x86_64,
           aarch64, armhf, armv7
2019-02-23 11:16:17 +00:00
elelel 7597fa7a22 new device: meizu-turbo (Meizu Pro 5) (!106)
The device boots till USB networking.
2019-02-21 20:25:18 +00:00
Clayton Craft 917ad071f0 device-purism-librem5dev: Use LCD-friendly dts (!232)
Since a recent kernel update enables the LCD display, this
uses a dts that allows the lcd to function, but drops support
for usb host (since purism does not have an all-in-one dts
yet)

[skip ci]: already built successfully in CI
2019-02-21 19:56:19 +01:00
Clayton Craft c5db817421 linux-purism-librem5dev: Update to latest purism kernel (!232)
Most notably, this update enabled the LCD display for all devices!
2019-02-21 19:56:10 +01:00
Oliver Smith bf12556657 purisum-librem5dev: skip kconfig check (!215)
Ignore this kernel in "pmbootstrap kconfig check" by default, so we can
use the upstream kernel config without any changes. But still enable the
kernel config check again.

The related pmbootstrap change will be merged soon:
https://gitlab.com/postmarketOS/pmbootstrap/merge_requests/1753

[skip ci]: this change doesn't affect the build
2019-02-21 19:24:55 +01:00
PureTryOut 09ce31ca20 kde/frameworks: update to 5.55.0 (!212)
[skip ci]: too many packages changed, build won't finish in time.
	   ollieparanoid made sure that this builds for x86_64,
	   aarch64, armhf, armv7. Also he tested that this boots up
	   in qemu-amd64.
2019-02-19 08:40:18 +01:00
Oliver Smith 778880e87a temp/qt5-qtbase: patch that fixes GLESv2 on arm (!212)
Plasma-framework 5.55.0 isn't building for aarch64 without this patch.

Aleix Pol ran into the same problem with flatpak builds, and created the
patch: https://codereview.qt-project.org/#/c/253276/
2019-02-16 19:01:41 +01:00
Oliver Smith 3de8300f91 cross/busybox-static-*: update to 1.30.1 2019-02-16 18:39:41 +01:00
Martijn Braam 85bafd1e3a sourcehut helper: Added option to specify pmbootstrap branch 2019-02-16 16:51:23 +01:00
Oliver Smith a3b88e2e28 main/pmbootstrap: update to 1.4.0 2019-02-15 16:58:48 +01:00
Oliver Smith bc0a942628 cross/musl-*: update to 1.1.21 2019-02-15 11:00:38 +01:00
Oliver Smith 2d638d1a3a main/xcursorgen: build for all arches again
Fix binary package build error caused by package dmz-cursor-theme with
arch=all depending on xcursorgen.
2019-02-15 10:58:39 +01:00
Oliver Smith 6d3d5723b6 CI: ignore _git packages in Qt version check
Do not fail the CI check with the _git packages that have been added
in the initial unity8 packaging.
2019-02-15 10:56:55 +01:00
Luca Weiss 28502356d6 temp: fix arch of new temp packages from the Unity 8 MR (!220)
lightdm, lttng-tools: build for all instead of x86_64 only.

[skip ci]: already ran in CI successfully
2019-02-15 08:41:33 +01:00
William O-D 8ebafdf992 New device: samsung-hero2lte (Samsung Galaxy S7 Edge) (!179)
Display is working in both X and wayland (tested with weston and XFCE).
Not tried with osk-sdl yet, charging-sdl seems to work fine.
USB networking and SSH is working too.

Camera subsystem disabled to prevent bootloops. This device brings its
own dtb.img format, but there's a generator in the kernel source that
is used at build time (patched to make it work properly).

[skip ci]: already built in CI successfully
2019-02-13 21:09:48 +00:00
Luca Weiss 8c2a95dbe2 unity8: initial packaging (!27)
* Mir starts up and is able to display system settings
* x86_64 only for now, because at least ubuntu-app-test did not build
  on aarch64

Based on PureTryOut's work. Getting it to this stage was a huge effort
(as it shows in the package count: 111(!)). See the merge request for
details.

[skip ci]: this won't finish in CI; ollieparanoid made sure that
           everything builds for x86_64.
2019-02-13 21:47:29 +01:00
Sergey Larin 7df8828dfb samsung-i927: Set touchscreen and keyboard in deviceinfo (!217)
[skip ci]: already built successfully in CI
2019-02-12 23:30:23 +01:00
Sergey Larin 6b1072a789 samsung-i927: Kernel updates (!217)
- Use separated patches
- Use new panel driver (with backlight support)
- Battery fixes
- Fix compass (AK8975) (not tested, only probing works, but sometimes
  doesn't - says "Unexpected device" - need to investigate that)
- Touchkey is working + LED
- Keyboard backlight + HALL for slideout detection
2019-02-12 23:28:56 +01:00
escoand 62b145d8db New device: htc-ville (HTC One S) (!177)
Boots and runs weston so far.

[skip ci]: already built successfully in CI
2019-02-12 21:45:39 +00:00
Denny Harijanto 1b353c020a asus-tf101: USB Networking and Touch Screen Support (!197)
- Reverts few hacky commits that caused USB networking not to work
- Modified atmel drivers used by TF101 to work with libinput

[skip ci]: already built successfully in CI
2019-02-12 22:29:43 +01:00
Matthias Berndt 33900c7889 New device: htc-vision (HTC Desire Z/G2) (!132)
Based on cmdrwgls original work from:
https://github.com/postmarketOS/pmbootstrap/pull/810

Fixed to actually boot, compile with GCC-6, and the touch screen is
working!

[skip ci]: already passed CI
2019-02-12 22:19:59 +01:00
Daniele Debernardi 7b3702e2dd Add gcc4 and gcc4-armhf packages (!216)
Successfully tested both the gcc4 compiler on x86_64 with a simple
program (fbdebug) and the gcc4-armhf cross-compiler to build a very old
u-boot port for Galaxy Nexus (a MR will follow soon) which failed to
boot with either newer version (6 and 8).

[skip ci]: already went through
2019-02-12 21:03:12 +00:00
Luca Weiss 2f4da158d0 Always quote _commit (!207)
[skip ci]: too many aports changed
2019-02-11 22:03:58 +01:00
Luca Weiss 774046c85b Use _commit consistently, use _commit in sources instead of pkgver (!207) 2019-02-11 22:02:26 +01:00
Bhushan Shah 14c0397f26 plasma-mobile: dump scaling based on font sizes (!204)
PureTryOut said: The situation has improved, that's for sure, but the
scaling still isn't perfect. However, according to bshah, this is how it
should be done, so I'm fine with merging this anyway.
2019-02-11 20:56:58 +01:00
Bart Ribbers 54a186d08b temp/qt5-qt* & kde/: bump which I forgot earlier causing all kinds of issues (!205) 2019-02-08 20:20:17 +01:00
Bart Ribbers 17f88bd2f8 kde/ & main/postmarketos-ui-plasma-mobile: bump pkgrel after Qt upgrade (!202) 2019-02-08 13:48:21 +01:00
Bart Ribbers 3d4b38b014 temp/qt5-qt*: upgrade to 5.12.1 (!201) 2019-02-08 12:04:09 +00:00
Bart Ribbers 1d0437072f kde/plasma-phone-components: update to latest git (!199)
Resolves #170 (screen brightness gets set to 0 after booting).
2019-02-08 10:14:02 +01:00
Sergey Larin e007f80165 samsung-i927: new device (Samsung Captive Glide) (!195)
Runs an only slightly patched mainline kernel.

For now:
- flashing works (only SD card boot and kernel flashing tested)
- boots
- screen works
- keyboard works
- touch works
- accelerated Xorg works (OGL not tested, xf86-video-tegra works,
  but sometims X crashes with invalid instruction error - open top menus in
  Xfce file manager to reproduce)
- SD card works (troubles with GPIO insertion detection)
- USB should work, not tested
- WiFi should work, also not tested (a lot of warnings during boot)
- Sound needs configuration
- battery needs kernel driver (max8922/max8907c)
- touchkey doesn't work - very strange hardware here...
- cameras don't work - no DT bindings, but all drivers there

Other functionality is broken/not tested.

[skip ci]: already built successfully in CI
2019-02-08 09:12:59 +01:00
Bart Ribbers a72cf419ad temp/qt5-*,main/libphonenumber: pkgrel bump to fix ICU soname issue (!200)
Alpine Linux has updated their main/icu to 63.1, which means we have to
rebuild some of our packages too.

[skip ci]: simple pkgrel bumps, building won't finish in CI
2019-02-08 08:31:22 +01:00
Oliver Smith 8e00db7fef main/uuu: only build for x86_64
Fails to build for armhf with the error below, and doesn't seem to be
tested on anything but x86_64 anyway according to the project's
README.md file. I did not report this upstream, because we are using
the version from Purism's repository that is at 1.2.31. Upstream is
already at 1.2.68, which may have fixed this already. So if somebody
needs to have it working for anything other than x86_64, we should try
the upstream version first.

[ 83%] Creating preprocessed clst file /home/pmos/build/src/mfgtools-uuu_1.2.31/uuu/gen/emmc_burn_all.clst
gen_txt_include.sh: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:63: uuu/gen/uuu.clst] Error 127
make[2]: *** Waiting for unfinished jobs....
gen_txt_include.sh: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:68: uuu/gen/emmc_burn_loader.clst] Error 127
gen_txt_include.sh: applet not found
gen_txt_include.shmake[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:73: uuu/gen/emmc_burn_all.clst] Error 127
: applet not found
make[2]: *** [uuu/CMakeFiles/uuu.dir/build.make:93: uuu/gen/sd_burn_all.clst] Error 127
make[1]: *** [CMakeFiles/Makefile2:184: uuu/CMakeFiles/uuu.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 83%] Built target uuc
make: *** [Makefile:130: all] Error 2
2019-02-08 08:28:18 +01:00
Clayton Craft d873bc0d28 main/uuu: Add Universal Update Utility (!196)
This is a flasher tool used by the Librem5 devkit and most likely other
future NXP-based devices.
2019-02-07 09:10:08 +01:00
Oliver Smith dcaf388c44 cross/busybox-static-*: update to 1.29.3-r12 2019-02-07 06:53:58 +01:00
Bart Ribbers fd73c12f8d main/qt5-*: remove as it's now in the Alpine repositories 2019-02-06 12:52:06 +01:00
Zhuowei Zhang 2a4d30e52a main/postmarketos-mkinitfs: fix USB idVendor/idProduct values for ConfigFS (!190)
ConfigFS expects idVendor and idProduct values to be prefixed with 0x.

Without this change, google-crosshatch shows as a device with 0:0 as the
idVendor/idProduct in lsusb:

Bus 001 Device 004: ID 0000:0000

This confuses VirtualBox: it has trouble detaching this device from
a virtual machine, so one must manually use ifconfig to bring down the
old USB network connection before reattaching.

With this change, the idVendor/idProduct is correct:

Bus 001 Device 004: ID 18d1:d001 Google Inc.

This issue also seems to affect other devices with ConfigFS, such as the
Nexus 5:

https://matrix.to/#/!clcCCNrLZYwdfNqkkR:disroot.org/$15487159511194991apGpy:matrix.org
2019-02-05 10:07:21 +01:00
Hacker1245 c07618dcd3 motorola-cedric: remove roccat mouse driver (!194)
This MR removes the Roccat mouse drivers that I added before when I was
testing my mouse.

[skip ci]: already built in CI successfully
2019-02-05 09:53:35 +01:00
Clayton Craft 4d94dd2953 device-purism-librem5dev: move wifi module options to separate conf file (!192)
[skip ci]: already successfully built in CI
2019-02-05 09:41:54 +01:00
Clayton Craft 1691f5157d device-purism-librem5dev: enable gps support (!192) 2019-02-05 09:41:37 +01:00
Clayton Craft bbcc878e4f linux-purism-librem5dev: update to latest linux-emcraft branch (4.18-wip) (!192) 2019-02-05 09:41:32 +01:00
Grant Miller b6fe2fd834 Don't manually install initfs-hook.sh (!191)
This only changes devices that use devicepkg-dev (see #8)

[skip ci]: too many packages have changed
2019-02-05 09:35:07 +01:00
Grant Miller 6b3b08f08a main/devicepkg-dev: Automatically install initfs-hook.sh (!191) 2019-02-05 09:34:34 +01:00
Ion Agorria 797f0d5319 xiaomi-tissot: Add firmware for WiFi and fix ramoops (!189)
Add firmware required to make WiFi work. Patch the kernel so the ramoops
dmesgs can be read properly without having to remove that header every
time.

[skip ci]: already built successfully in CI
2019-02-05 09:25:30 +01:00
Hacker1245 4346402695 motorola-cedric: fix X11 framebuffer (!187)
This patch fixes Xorg. Adapted from the Xiaomi A1.

[skip ci]: already built successfully in CI
2019-02-03 02:22:55 +01:00
Clayton Craft 9be5be7123 device-purism-librem5dev: Use dts with usb host mode support (!182)
USB host mode is useful (essential?) on the devkit for adding a
keyboard/mouse to interact with the desktop since the onboard display
and touchscreen are very much in flux.

[skip ci]: already built successfully in CI
2019-01-31 08:27:22 +01:00
Clayton Craft 8fc1c28d9a linux-purism-librem5dev: use correct flavor name (!182) 2019-01-31 08:25:42 +01:00
rahmanshaber 34d157a255 Update APKBUILD - qt5-qtsvg-dev 2019-01-30 11:59:38 +00:00
Zhuowei Zhang e222859dea google-crosshatch: enable /dev/mem in kernel (!184)
This is useful for dumping device registers when mainlining.

[skip ci]: takes longer than 1h to build, ollieparanoid made sure that
           it builds locally.
2019-01-30 09:39:49 +01:00
Zhuowei Zhang d0f36689ab google-crosshatch: enable wifi driver in kernel config (!184)
The LineageOS kernel integrates the Wi-Fi driver, so reconfigure with
the Lineage defconfig and copy the Wi-Fi options over to our defconfig.

This doesn't get Wi-Fi working yet, but it gives a good starting point.
2019-01-30 09:38:32 +01:00
Zhuowei Zhang afe0f14e34 google-crosshatch: switch to LineageOS kernel (!184) 2019-01-30 09:37:25 +01:00
rahmanshaber 99336d5992 main/qt5ct: new aport (!185)
This program allows users to configure Qt5 settings (theme, font, icons,
etc.) under DE/WM without Qt integration.
2019-01-30 09:07:35 +01:00
Bhushan Shah 5b25a32861 plasma-mobile: launch dbus session before kwin (!183)
Otherwise kwin can't register it's services.
2019-01-30 08:41:51 +01:00
Oliver Smith e04192baf3 linux-purism-librem5dev: set REPLACE_GCCH=0
Do not replace compiler-gcc.h. This is necessary now, as we are
replacing compiler-gcc.h by default again, as it is needed for most
kernels. Not increasing the pkgrel to avoid unnecessary rebuild, I have
verified that this works.

NOTE: in the last commit message, I wrote about OVERWRITE_GCC=0. But
the variable is called REPLACE_GCC, as I've decided to rename it before
submitting. I forgot to change it in the commit message.

[skip ci]: this kernel takes more than one hour to build, so it won't
           finish in CI.
2019-01-29 09:55:45 +01:00
Oliver Smith 4328e5fe2f devicepkg-dev: opt-out compiler-gcc.h replacing (!186)
Instead of never overwriting compiler-gcc.h if it exists, overwrite it
by default except if OVERWRITE_GCCH=0 is set in the environment.

Most kernels *do* need this file replaced and won't build without this
patch.
2019-01-29 09:44:44 +01:00
thejsa 7b86ca313d motorola-athene: enable touchscreen (!180)
Adds an initfs-hook to enable touchscreen on motorola-athene.
2019-01-28 21:20:20 +01:00
Claudio Maggioni (maggicl) d65f0a1f8e sony-coconut: Added 16-bit color depth workaround (!178)
Signed-off-by: Claudio Maggioni (maggicl) <cmaggioni@keemail.me>

[skip ci]: already build successfully in CI
2019-01-28 21:14:52 +01:00
sir_si c6e5ec1dff htc-evita: new device (HTC One XL) (!175)
[skip ci]: already built successfully in CI
2019-01-28 21:09:57 +01:00
Ion Agorria f0f504798e xiaomi-tissot: Modernize APKBUILD, add Xorg support (!173)
This modernizes the APKBUILD that was based from outdated one (still
needs GCC6) as requested in !165 (comment 133993271). Also adds a fix
to allow Xorg booting, osk-sdl doesn't work yet as it throws some ugly
faults in kernel related to fbcon.

[skip ci]: already built successfully in CI
2019-01-28 21:02:04 +01:00
Unknown e41b484d36 motorola-cedric: add wifi firmware (!172)
I made a firmware package APKBUILD based on the motorola-titan and added
it to the device-motorola-cedric APKBUILD.
2019-01-28 20:53:44 +01:00
Clayton Craft fd8582fe6c purism-librem5dev: new device (!141)
[skip ci]: build takes pretty long, at least the download timed out
in CI last time. ollieparanoid made sure that this builds before
merging.
2019-01-28 20:45:32 +01:00
Clayton Craft 03a22d6ef3 device/u-boot-librem5dev: new package (!141) 2019-01-28 20:45:18 +01:00
Clayton Craft 03fcb0d08f device/linux-purism-librem5dev: new package (!141) 2019-01-28 20:45:18 +01:00
Clayton Craft ff25ad7a0c main/devicepkg-dev: don't overwrite compiler-gcc.h (!141)
At least one newer kernel already includes the compiler support split
stuff, so don't overwrite it if it already exists.
2019-01-28 20:45:18 +01:00
Clayton Craft 018e28cc66 main/postmarketos-mkinitfs: aarch64 uboot initrd (!141)
Support generating the aarch64 legacy uboot initrd files, not only the
armhf version. Use deviceinfo_arch to choose the right arch.
2019-01-28 20:45:18 +01:00
Attila Szollosi b24a2a4c96 recovery zip: fix "No OS installed" warning (!169)
Tested on sony-amami with TWRP 3.0.2.
2019-01-28 09:52:02 +01:00
Konrad Dybcio eb30c690fc sony-nicki: use armv7 (!143)
[skip ci]: this compiled in CI before, no need to run again.
2019-01-28 09:19:49 +01:00
Clayton Craft db85aebd0f devicepkg-dev: Properly replace -Werror= (!181)
The 5.0 kernel now includes -Werror= parameters in the makefile, this
changes downstreamkernel_prepare.sh to support them. Without this, the
script will replace, for example, -Werror=blah with =blah, which causes
the kernel compilation to fail.
2019-01-28 08:13:52 +01:00
rahmanshaber f9915bd0ea Add coreapps: lightweight Qt apps for various tasks (!162)
More information and screenshots in the GitLab project:
https://gitlab.com/cubocore

[skip ci]: ollieparanoid made sure this builds for x86_64, armhf,
           aarch64, armv7.
2019-01-26 09:48:15 +01:00
Lwrless 79e655f6e9 xiaomi-aries: new device (Xiaomi Mi2) (!171)
Finally got display working, but it's based on MoKee kernel which is
also hosted on GitHub by community. So what works:

* USB Networking
* Flashing
* Touchscreen
* Display
* Weston with Xwayland

The device boots and shows the splash screen properly, after about 3
sec the screen went black. I had to
"echo 127 > /sys/devices/i2c-0/0-0038/leds/lm3530-backlight/brightness"
to make the backlight work, even though the value of it was already
127.

[skip ci]: this was built successfully in CI already
2019-01-25 09:53:12 +01:00
Bart Ribbers 02f73e7e8a sony-amami: use armv7 (!126)
Tested it with Weston and it boots fine.

[skip ci]: already built in CI, no need to build again
2019-01-25 08:41:17 +01:00
Oliver Smith 7828c621da busybox-static-*: update to 1.29.3-r10 2019-01-25 08:37:02 +01:00
Grant Miller 093b6869e3 linux-samsung-jflte: Use gnu89 patch (!144)
[skip ci]: this MR was built successfully in CI already
2019-01-25 08:34:30 +01:00
Grant Miller b226f61602 samsung-jflte: Use armv7 (!144)
I have tested this on xfce4 and weston. Also plasma-mobile "works"! The
performance isn't any better than on armhf, it's still less than one
frame per second and llvmpipe still doesn't work.

After switching to armv7, this kernel fails to compile with the
following error unless CONFIG_CRYPTO_AES_ARM_BS is disabled:

arch/arm/crypto/aesbs-core.S:449: Error: thumb conditional instruction should be in IT block -- `addeq r6,r6,#0x10'
arch/arm/crypto/aesbs-core.S:904: Error: thumb conditional instruction should be in IT block -- `addeq r6,r6,#0x10'
arch/arm/crypto/aesbs-core.S:2100: Error: thumb conditional instruction should be in IT block -- `subne r9,#0x10'
2019-01-25 08:32:54 +01:00
Bart Ribbers 9c51b26162 main/postmarketos-ui-plasma-mobile: remove elisa from depends (!151)
We had 2 music players included which doesn't make sense, and vvave is
actually made with a focus on mobile.

[skip ci]: do not try to build this merge request, ollieparanoid made
           sure that it builds for x86_64, armhf, aarch64.
2019-01-23 11:02:06 +01:00
Bart Ribbers c25ca37999 kde/plasma*: update to 5.14.5 (!151)
Tested on Qemu amd64. Everything built and ran successfully. Even
better, applications start in full-screen again!
2019-01-23 10:59:18 +01:00
PureTryOut 0746e147d0 device/device-lg-bullhead: disable 2 cpu's to prevent bootlooping (!139)
Quite a few Nexus 5X devices have the tendency to bootloop after a while
of being on, iirc because it overheats. This has been a known issue for
quite some time, and most Android ROM's for it have measures in place to
prevent this, in the form of disabling some CPU cores (iirc "Big cores"
or something like that). My Nexus 5X is also subject to this issue.

According to craftyguy, resolving this is as easy as changing the boot
command to not use those CPU cores. This commit does exactly that. It
should probably be made optional for people with this device without
that issue, but since I have no clue how to do that atm, this is the
safest for now.
2019-01-23 09:54:12 +01:00
Hacker1245 dca30e4e60 motorola-cedric: Enable OTG (!163)
OTG was tested with a keyboard and a pendrive.

[skip ci]: this was built successfully in CI earlier, only rebased and
           squashed the commits here.
2019-01-23 09:49:15 +01:00
Marijn rom 7f69748faf asus-grouper: add mdss-fb-init-hack (!170)
mdss-fb-init-hack fixes the black screen (e.g. in XFCE4)
2019-01-23 09:43:51 +01:00
Ion Agorria 26592daadc device-xiaomi: new device (!165)
Initial support for Xiaomi A1 aka xiaomi-tissot using LineageOS 15.1
kernel, has similar board to Xiaomi Redmi 4 aka xiaomi-mido with some
differences that had to be patched such as reversing skip_initramfs and
ignoring dm param. 16.0 kernel boots but display fb init doesn't work.

Weston boots with touch support, SSH via USB RNDIS works.

[skip ci]: this built once in CI already, good to go.
2019-01-23 09:41:42 +01:00
Bart Ribbers 879213f02c kde/frameworks*: update to 5.54.0 (!150)
Tested on Qemu amd64. Everything builds and runs correctly.

[skip ci]: ollieparanoid made sure that this builds for x86_64, armhf
           and aarch64.
2019-01-22 09:07:58 +01:00
Oliver Smith 170c9aaaf1 pmbootstrap: update to 1.3.0 2019-01-22 08:59:47 +01:00
Oliver Smith 158ac15143 CI: show meaningful error for outdated pmaports (!167)
When we bump the version in pmaports.cfg and the min. required pmaports
version in the pmbootstrap code, then forks of pmaports.git must be
rebased on pmaports.git master. Otherwise "pmbootstrap init" fails, and
because we have it set to quiet (so the output does not distract from
the interesting output if everything goes fine), there was no meaningful
error message yet.

Wrap the "pmbootstrap init" call and display a helpful message that
tells the user to rebase.
2019-01-22 07:47:12 +00:00
Matthias Berndt f0f6db1bae pmos-base: skip failures in devmappings.initd (!164)
Continue even if some kpartx commands fail. This is necessary for the
htc vision and perhaps other devices.
2019-01-22 07:30:44 +01:00
Martijn Braam 99700879f3 main/unixbench: Upgrade to latest git master (!166)
Upgrade unixbench to git master instead of the old git tag I've used.
New version has way better way to check core count on ARM machines.
2019-01-22 06:47:55 +01:00
Hacker1245 7d8dcb7ea6 motorola-cedric: enable touchscreen (!157)
Add initfs hook to enable it, and set the deviceinfo variable.
2019-01-21 08:30:19 +01:00
NeKit c54463924f planet-geminipda: new device (Planet Gemini PDA) (!155)
Integrate Gemini PDA support into master from old branch:
https://github.com/postmarketOS/pmbootstrap/commits/device-planet-geminipda

Most of hybris-related changes (besides KWin) was merged, so it is just
device and kernel aports now.

The state of hardware support is unchanged from:
https://wiki.postmarketos.org/wiki/Planet_Computers_Gemini_PDA_(planet-geminipda)

Without hybris, it can boot to graphics with X11 fbdev driver, the
included config enables correct rotation (as it has portrait display,
but usable only in landscape).

For running it with hybris, which can allow for 3D acceleration, we need
a way to package and provide large LXC image for running Halium Android
container. Lately Adam Boardman from Gemini PDA community also got voice
calls working in Debian install with a mix of SailfishOS middleware and
Ubuntu Touch applications, which could be probably adapted for
postmarketOS if needed.
2019-01-21 07:39:41 +01:00
Grant Miller 3c717ca38b Bump pmaports version (!158) 2019-01-21 07:12:22 +01:00
Grant Miller 468b53a411 Add gnu89 patch to .shared-patches/linux/ (!158) 2019-01-21 07:12:00 +01:00
Oliver Smith a56afc54c3 kde/itinerary, kde/kitineary: remove (!156)
Right now, this doesn't build anymore, it is failing with:

/home/pmos/build/src/itinerary-c47772e49de6662acd7769d5c8cef94379ea7bcf/src/app/reservationmanager.h:21:10: fatal error: KItinerary/ExtractorRepository: No such file or directory
 #include <KItinerary/ExtractorRepository>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I've tried to update it to the latest commit, but then it fails with
another error. Turns out, this package depends on kitinerary (with a
k!), and whenever we update that, we also need to update this package
to the latest commit. Unfortunatelly, itinerary does not have tagged
versions yet.

So I would like to remove it for now, it does not seem like anybody is
using it at this point, and so it's just additional maintenance effort
for nothing. We could package it again, when it has tagged versions and
is therefore easy to update together with kitinerary.

Remove kitinerary too, because it isn't used by anything else.
2019-01-21 06:45:55 +01:00
Luca Weiss 8c1ebc31a8 pine-a64lts: add wifi and bluetooth firmware (!153)
Add firmware-rtl8723bt package and Pine wifi and bluetooth firmware
subpackage.

[skip ci]: ollieparanoid will build this MR manually before merging, it
will probably not finish CI within one hour.
2019-01-20 14:47:59 +01:00
Luca Weiss 4edbac805d pine-a64lts: update kernel to 4.20.0 (!153) 2019-01-20 14:47:50 +01:00
Hacker1245 8b758c877c New device: motorola-cedric (Motorola Moto G5) (!154)
The device boots, USB networking works, display works (touch doesn't
work). All other information is in the Wiki page.
2019-01-20 03:24:19 +01:00
Luca Weiss 2f6f4a2afb u-boot: update to 2019.01 (mainline Pine A64) (!152)
The Pine boots, Weston shows on a HDMI display.

[skip ci]: doesn't finish in time; ollieparanoid tested that this
compiles for armhf, aarch64, armv7
2019-01-20 02:32:13 +01:00
Martijn Braam fb436c7b29 main/unixbench: add aport for a benchmarking tool (!145)
Adds an aport for unixbench and a wrapper so it can be started with
ubench without requiring write permissions in /usr. To launch the
benchmark on a phone and have it finish in a reasonable amount of time:

$ ubench dhry whets
Output on an i7-7700HQ in the pmbootstrap chroot:
Dhrystone 2 using register variables      146273178.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    44390.3 MWIPS (9.7 s, 7 samples)

System Benchmarks Partial Index              BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  146273178.2  12534.1
Double-Precision Whetstone                       55.0      44390.3   8071.0
                                                                   ========
System Benchmarks Index Score (Partial Only)                        10057.9

This is a neat way to get relative performance between devices and
testing performance for upstream/downstream kernels.
2019-01-19 22:12:52 +01:00
Oliver Smith bccf3d10e2 main/wireguard-postmarketos-stable: fix arch
Change arch line to same as linux-postmarketos-stable (so the current
build scripts won't attempt to build linux-postmarketos-stable for
armv7).
2019-01-18 09:46:38 +01:00
Grant Miller d6c5d0ec4d kde/kitinerary: Update to 18.12.0 (!149) 2019-01-18 08:45:47 +01:00
Grant Miller 4dcaa95413 kde/kitinerary: Fix APKBUILD (!149)
Add karchive-dev and libxml2-dev to depends_dev
2019-01-18 08:45:19 +01:00
Robert Yang 6178ebda12 mesa-grate: Switch to meson build system (!148) 2019-01-18 07:33:58 +01:00
Oliver Smith 6e7778f4bd cross/busybox-static-*: update to 1.29.3-r9 2019-01-18 07:29:57 +01:00
Oliver Smith 82d9c87d4f main/telepathy-mission-control: fix armv7 build
Add python2 to makedepends, so it builds in strict mode for armv7.
Otherwise it would fail with:

checking whether /usr/bin/python2 version >= 2.6... configure: error: too old
2019-01-15 09:44:16 +01:00
Martijn Braam 093cc7d002 cross/busybox-static-*: update to 1.29.3-r7 2019-01-14 22:48:40 +01:00
Grant Miller f658d0d5de kde/qca-qt5: Delete in favor of upstream qca (!146) 2019-01-13 18:00:33 -06:00
PureTryOut 0bf985f5e1 main/maui*: update apps and plasma-angelfish (!136)
This MR updates the app to the latest commit (currently from 2 days
ago). It also updates plasma-angelfish, but I changed the $pkgrel to
follow the format of the other Git packages.

This also re-enables plasma-angelfish and vvave in the default Plasma
Mobile installation, as they were previously disabled due to
qt5-qtwebengine (which they depend on) requiring a soname bump
upstream.
2019-01-11 08:17:44 +01:00
PureTryOut 2c08e209fe maemo/libhildon: fix hildon-desktop armv7 build (!130)
Add patch to remove inline from some functions to make hildon-desktop
compile on armv7.
2019-01-10 22:56:53 +01:00
PureTryOut aaae271609 hildon-theme-alpha: fix warnings in APKBUILD (!130)
Fix warnings showed by abuild when building this package:
* Add doc subpackage
* Add options=!check
* Use pkgname in source URL
2019-01-10 22:56:45 +01:00
Oliver Smith ab9d05eea6 cross/arch-bin-masquerade: add armv7
Make our distcc+ccache+cross compiling setup work with armv7.
2019-01-10 22:43:13 +01:00
Danct12 f842a0e39f device-asus-z00vd: add missing devicepkg (!137)
Follow-up to !21, where only the kernel was added, but not the device
package.
2019-01-10 22:33:48 +01:00
Grant Miller 61d42aa1e7 heimdall: Fix APKBUILD and switch to GitLab 2019-01-10 21:30:24 +00:00
Oliver Smith f9c6aa17cc cross/busybox-static-*: update to 1.29.3-r6 2019-01-10 22:26:56 +01:00
Clayton Craft ed063565df device-pine-a64lts: use deviceinfo_sd_embed_firmware (!140)
This adds the new deviceinfo parameters for specifying binary:offset for the
embed_firmware method, and removes the old method.
2019-01-10 22:22:46 +01:00
Oliver Smith e832d89b38 pmaports.cfg: require pmbootstrap 1.2.0
The new version changed the way firmware is written to SD cards, see:
https://postmarketos.org/deviceinfo
2019-01-10 22:15:00 +01:00
Oliver Smith c43d9f22d3 pmbootstrap: update to 1.2.0 2019-01-10 22:14:59 +01:00
PureTryOut 7f1c8ba865 kde/applications*: update to 18.12.0 [skip ci] (!135)
Add main/qt5-qtspeech, required dependency for kde/kpimtextedit. Disable
check in kde/kimap, as it fails at least with QEMU aarch64.

Change the source url for Sink and Kube to the KDE Download mirror
rather than their GitHub organization (they required rebuilding anyway
due to the applications upgrade).
2019-01-10 09:49:52 +01:00
JohnBergago b21caaeeb8 New device: huawei-cameron (Huawei Mediapad M5 pro) (!133)
The device boots, USB networking is available and the display does also
work, even though the default display brightness seems to be zero. More
information can be found in the wiki.
2019-01-09 08:19:40 +01:00
Grant Miller ef59cc8a30 maemo/libhildondesktop: Fix compilation (!131)
Thanks to PureTryOut for the patch

[skip ci]: the CI script will fail with the "too many packages have
changed" sanity check. ollieparanod has verified that everything builds
before merging.
2019-01-09 07:41:26 +01:00
Grant Miller 386354e630 maemo/hildon-desktop: Update to 2.2.157.11 (!131) 2019-01-09 07:14:07 +01:00
Grant Miller d6963a0688 maemo/hildon-desktop: Fix compilation for 32 bit x86 (!131) 2019-01-09 07:14:07 +01:00
Grant Miller 038ecb45b3 temp/weston: Re-enable x86 (!131) 2019-01-09 07:14:06 +01:00
Grant Miller cb200a36db maemo/hildon-desktop: Remove obsolete "patch" (!131) 2019-01-09 07:14:06 +01:00
Grant Miller a03b21723d Revert "hildon: disable building x86 for all packages" (!131)
This reverts commit d7e1a2fb6e.
2019-01-09 07:14:06 +01:00
Grant Miller 7194f63d3f Revert "maemo/hildon-desktop: disable x86" (!131)
This reverts commit 054dedf3e5.
2019-01-09 07:14:06 +01:00
Grant Miller 13c73cba5a Revert "main/postmarketos-demos, -ui-weston: disable x86" (!131)
This reverts commit 6e0781b7ab.
2019-01-09 07:14:02 +01:00
Luca Weiss 66121592c2 hildon-thumbnail: workaround for build error (!138)
Build libshared.la explicitly to avoid this error:
No rule to make target '../daemon/libshared.la', needed by 'hildon-thumbnailerd'

Fixes #164.
2019-01-09 07:03:44 +01:00
Daniele Debernardi ffa2dad8ca device-raspberry-pi3: Remove unnecessary kernel subpackage (!127) 2019-01-06 13:27:58 +01:00
Daniele Debernardi c60f29e974 device-raspberry-pi0: Reduce GPU memory and always install bluetooth package (!127) 2019-01-06 13:27:53 +01:00
Oliver Smith 6225dfa554 cross/musl-*: update to 1.1.20-r3 2019-01-04 21:07:23 +01:00
Bhushan Shah 9f00f17d94 plasma-mobile: fix booting into black screen (!128)
Switch plasma-mobile to use xdg-shell instead of wl-shell. wl-shell is
deprecated in Qt 5.12 and is breaking plasmashell, it seems.

Related upstream issue:
https://invent.kde.org/kde/plasma-phone-components/issues/2

This introduces another regression that applications don't start
maximized. Will have to solve this issue upstream.

Closes #159
2019-01-04 20:31:06 +01:00
Oliver Smith 9b4435bcd0 cross/gcc-*: add missing patch file
I forgot to add it with the last commit, sorry for that.
2019-01-03 16:03:55 +01:00
Oliver Smith 81b184522a cross/gcc-*: update to 8.2.0-r2
[skip ci], as the build takes too long.
2019-01-03 15:57:32 +01:00
Mis012 c28fffa5b3 New device: asus-me176cx (Asus MeMo Pad 7) (!123)
Use upstream Linux with patches, which are needed for a lot of things.
lambdadroid said he will upstream some of them, but the battery driver
would need to be written from scratch, which is apparentely
non-trivial.

[skip ci]: kernel doesn't build under one hour (maybe too many modules
are selected), but it does build eventually
2019-01-03 10:19:45 +01:00
Daniele Debernardi 2bc4b640b0 New device: Raspberry Pi Zero with Ethernet over USB enabled (!125)
As mentioned in #151, the Raspberry Pi Zero doesn't have an ethernet
port, so this makes it quite complicated to connect to the device from
a fresh install, because wifi/bluetooth/serial/... are not configured.
With this new package, the device starts with the microUSB configured as
ethernet and the dhcpd is running on the RPI, so you can simply connect
it to a computer and connect with SSH in order to configure it.
2019-01-03 09:48:39 +01:00
Oliver Smith b682ed3a98 cross/binutils-*: update to 2.31.1-r2 2019-01-03 09:47:29 +01:00
Daniele Debernardi 88abc21167 debug-shell: Skip fbsplash properly (!124)
The show_splash function called by the 20-debug-shell.sh script already
skips fbsplash when the device is configured to not use the framebuffer.
But the variable was not defined in the script. This is solved by
including the /etc/deviceinfo file.

Follow-up to !108, where this change got lost in the rebase.
2019-01-03 09:03:37 +01:00
Oliver Smith b95b73e26c Update copyright to 2019
Happy new year! \o/
2019-01-02 09:29:47 +01:00
Oliver Smith ac2730385b cross/busybox-static-*: update to 1.29.3-r5 2019-01-02 09:07:03 +01:00
Oliver Smith 2593798fa0 temp/qemu: remove in favor of upstream version
The QEMU_MODULE_DIR patch has been upstreamed into the 3.10 release:
https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg01279.html

Also virglrenderer is now enabled in Alpine's qemu aport:
https://github.com/alpinelinux/aports/pull/5951

Now we can use the upstream version. Thanks to ryang for making this
possible!
2019-01-02 08:54:32 +01:00
Bart Ribbers 1b7d532bb9 kde/*: upgrade plasma framework to 5.14.4 (!120)
Since the Qt upgrade, Plasma Mobile boots into a black screen, even
on the current version in the master branch. Bhushan recommended we
update to the latest plasma framework anyway (which is possible now
due to the newer Qt version) and try to fix it from there. See #159.
[skip ci].
2019-01-02 07:28:31 +01:00
Oliver Smith 5a5cfa6b91 kde/libkleo: bump pkgrel after gpgme soname bump
The gpgme update (see last commit) caused a soname bump. Now we need to
rebuild libkleo.
2018-12-31 09:53:24 +01:00
Oliver Smith b08b250cd1 temp/gpgme: add again and update (!122)
Turns out we do need to fork this aport, as it builds qgpgme, which
Alpine's aport does not build as of now. Updated to 1.12.0 and changed
the pkgver to 9999, so it does not conflict with Alpine's aport.
2018-12-31 09:23:20 +01:00
Oliver Smith 14bb25ebe1 temp/gpgme: remove, more recent version in Alpine
We had probably added this, because no binary package was present in
Alpine at the time. Now it is present, and the package has been updated
in Alpine. No need to keep this outdated version around.
2018-12-31 09:12:43 +01:00
Oliver Smith 984476227f cross/binutils-*: regenerate with pmbootstrap
Changes spaces to tabs in the APKBUILDs, thanks to this fix:
https://gitlab.com/postmarketOS/pmbootstrap/merge_requests/1734

Alpine uses tabs in almost all their APKBUILDs, so we should do it the
same way. [skip ci].
2018-12-31 08:55:09 +01:00
Oliver Smith 14cf39a836 cross/gcc6-{aarch64,armhf}: regenerate with pmbootstrap
Run 'pmbootstrap aportgen gcc6-aarch64 gcc6-armhf' again and commit
the resulting changes, as these packages are meant to be always
auto-generated and therefore in sync with main/gcc6.

This changes the pkgver to 9999, as it was required in main/gcc6 to
avoid conflicts with Alpine's gcc6 package.
2018-12-31 08:45:39 +01:00
Oliver Smith 8d4232d1fd test_aports_kde: test Qt version too and rename (!119)
Rename test_aports_kde.py to test_aports_framework_versions.py and
generalize all referenes in the code from "KDE frameworks" to
"frameworks". Check that all Qt packages have the same version, support
having the real version in _pkgver and pkgver=9999.

Scan all pmaports, not only the ones in the kde dir. Do not output all
packages of the "other" category anymore, the package count is enough.
2018-12-30 20:53:52 +01:00
Oliver Smith 7dfb3b8d2b main/qt5-*/APKBUILD: use double quotation marks in URL (!119)
Let pmbootstrap properly parse the package URLs, this is required for
the next commit where we start comparing the pkgver of all QT packages
- based on the URL like we do it for the KDE packages.
2018-12-30 20:53:46 +01:00
Luca Weiss f09c7225dd telepathy-glib: enable vala bindings (!121)
Needed for the unity8 branch.
2018-12-30 20:00:27 +01:00
Bart Ribbers 232aeaf6f3 main/qt5-qtvirtualkeyboard: fix build, remove patch (!118)
Remove a patch that fixed a compilation error, it is not needed anymore
and does not apply to 5.12.
2018-12-29 17:20:28 +01:00
Bart Ribbers 3072439c23 main/qt5-qtwayland: fix depends, drop patch (!117)
Depend on wayland-dev and remove the LuneOS related patch that does not
apply anymore. We don't ship LuneOS UI anymore (see #49), so there's no
point in carrying around the patch.

This package was broken in the upgrade to Qt 5.12.
2018-12-29 17:10:21 +01:00
Bart Ribbers fd6c875064 temp/qt-5.12: fix build 2018-12-28 21:14:59 +01:00
Oliver Smith bcd2b13e5e QT: upgrade to 5.12.0 [skip ci]
Following today's upgrade in Alpine:
https://github.com/alpinelinux/aports/pull/5830

KDE packages have been bumped as described here:
https://wiki.postmarketos.org/wiki/Repository_maintenance
2018-12-28 17:34:27 +01:00
Oliver Smith 6d89f465a4 pmaports.cfg: increase min pmbootstrap to 1.1.0
Newer pmbootstrap will generate the deviceinfo_codename line when
creating a new device with "pmbootstrap init".
2018-12-26 22:22:20 +01:00
Oliver Smith 8a05aacfc6 pmbootstrap: update to 1.1.0 2018-12-26 22:20:45 +01:00
Luca Weiss bbec7c41ea Add deviceinfo_codename variable (!114)
For postmarketOS/pmaports#157 [skip ci]
2018-12-26 21:49:10 +01:00
Daniele Debernardi a98b900b65 postmarketos-mkinitfs: skip fbsplash for deviceinfo_no_framebuffer (!108)
Also noticed that the debug-shell hook wasn't sourcing the deviceinfo
and still showing the splashscreen even with
deviceinfo_no_framebuffer="true", now is fixed and tested.

Additionally, fix a typo in the existing
"NOTE: Skipping framebuffer setup..." message.
2018-12-26 20:21:55 +01:00
Robert Yang 6d25c1bef6 postmarketos-base: Add openrc service that creates partition mappings (!115)
When util-linux v2.32 updated v2.33, remounting a partition stopped
working.

  mount -n -o remount,rw /
  mount: /: can't find LABEL="pmOS_root".

This service will add the pmOS rootfs partitions to device mapper so that
the remount root partition will succeed.

Fixes issue #156
2018-12-26 12:08:36 -05:00
deata 42b48451b2 device/linux-samsung-kylepro: modernize aport (!113)
Kernel compiles and device boots.
2018-12-24 00:08:50 +01:00
Grant Miller ea16f7c523 Revert "temp/qemu: disable block-curl module" (!112)
This reverts commit c83052c9f3.
This workaround is no longer needed thanks to !109.
I have confirmed that qemu still compiles for aarch64. [skip ci]
2018-12-23 23:14:34 +01:00
Bart Ribbers bfd3159d3c kde/framework: upgrade to 5.53.0 (!105)
Tested locally on qemu-amd64, everything appears to work correctly.

[skip ci]
2018-12-22 23:33:44 +01:00
Oliver Smith 968bb4ed37 kde/attica-qt: disable tests (!105)
ProviderTest::testFetchInvalidProvider() does not run through anymore:
https://bugs.kde.org/show_bug.cgi?id=402284
2018-12-22 23:33:03 +01:00
Grant Miller 3fe8d0e053 Use openssl for all kernels (!111)
This is a followup to !109 (merged). Affected packages:
* device/linux-samsung-p4wifi
* device/linux-sony-tulip
* device/linux-teclast-x80pro
* main/linux-postmarketos-allwinner
* main/linux-postmarketos-mainline
* main/linux-postmarketos-qcom
* main/linux-postmarketos-stable

[skip ci] I have confirmed that all 7 kernels still compile.
2018-12-22 23:30:02 +01:00
Grant Miller 74941fe0d4 Add cross/{binutils,busybox-static,gcc,gcc6,musl}-armv7 (!110)
Generated with:
$ pmbootstrap aportgen binutils-armv7 busybox-static-armv7 gcc-armv7 \
  gcc7-armv7 musl-armv7

[skip ci]
2018-12-22 23:25:26 +01:00
Oliver Smith b46484ac65 kde/marble: bump pkgrel after soname bump
This does not exist anymore in Alpine, rebuilding: so:libgps.so.23
2018-12-22 09:29:47 +01:00
Oliver Smith 15ff816233 cross/binutils-*, cross/musl-*: add armv7
Regenerate these aports, so the test case does not complain anymore
that they are outdated. Adds armv7 to the arch lines, as that is the
aportgen change which was done in pmbootstrap!1730.
2018-12-22 09:29:47 +01:00
Grant Miller d0fc7218b0 modem/libsamsung-ipc: Use openssl (!109) 2018-12-22 08:55:09 +01:00
Grant Miller a6baf4b732 main/abuild-aarch64-qemu-workaround: Use openssl (!109)
Fix the openssl/libressl conflicts that only appeared on aarch64, see
c83052 ("temp/qemu: disable block-curl module") for example.
2018-12-22 08:55:09 +01:00
Wouter Franken 001de9e6dc linux-sony-yuga: modernize, use latest GCC (!107) 2018-12-18 08:00:09 +01:00
Oliver Smith ea3dc3d5a5 check_devices_in_wiki.py: update instructions
Explain that one needs to set "booting = yes" in the infobox, instead
of manually adding the device to the overview nowadays.
2018-12-17 08:21:54 +01:00
Oliver Smith c83052c9f3 temp/qemu: disable block-curl module
Workaround for a build error on aarch64, where the binary package
repository is currently stuck. Compiling it for aarch64 like this:

$ pmbootstrap build --strict --arch=aarch64 qemu

Resulted in:

>>> qemu: Analyzing dependencies...
ERROR: unsatisfiable constraints:
  openssl-dev-1.1.1a-r0:
    conflicts: libressl-dev-2.7.4-r2[pc:libcrypto=1.1.1a]
               libressl-dev-2.7.4-r2[pc:libssl=1.1.1a]
               libressl-dev-2.7.4-r2[pc:openssl=1.1.1a]
    satisfies: curl-dev-7.62.0-r2[openssl-dev]
               libssh2-dev-1.8.0-r4[pc:libcrypto]
               libssh2-dev-1.8.0-r4[pc:libssl]
               spice-dev-0.14.1-r3[pc:openssl]
  libressl-dev-2.7.4-r2:
    conflicts: openssl-dev-1.1.1a-r0[pc:libcrypto=2.7.4]
               openssl-dev-1.1.1a-r0[pc:libssl=2.7.4]
               openssl-dev-1.1.1a-r0[pc:openssl=2.7.4]
    satisfies: world[libressl-dev]
               libssh2-dev-1.8.0-r4[pc:libcrypto]
               libssh2-dev-1.8.0-r4[pc:libssl]
               spice-dev-0.14.1-r3[pc:openssl]
>>> ERROR: qemu: builddeps failed

Note that the only package not mentioned in both "satisfies" outputs is
curl-dev. The real questions are: why is libressl-dev getting pulled in
at all? (Alpine switched back from libressl to openssl, so this should
not happen). And why does this only happen for aarch64, but not for
x86_64 and armhf? But at least this patch unblocks the package builder.
2018-12-17 07:17:33 +01:00
Oliver Smith 14d60fe243 main/msm-fb-refresher: update to 0.2
The patch from drebrez has been upstreamed.
2018-12-15 01:48:29 +01:00
Martijn Braam 4631c2c879 srht: Fixed logic error in submit.py 2018-12-14 14:56:24 +01:00
Martijn Braam 76889851be Support submitting multiple files at once with submit.py 2018-12-14 11:22:46 +00:00
Grant Miller 53e3721ac8 temp/qt5-qtbase: Upgrade to upstream version 5.10.1-r3 (!102)
[skip ci]: does not finish building within one hour
2018-12-14 09:48:23 +01:00
Oliver Smith 54f977435d main/abuild-sign-noinclude: new aport (!81)
Builds abuild-sign and abuild-tar.static without any dependencies, so
they can be used outside of an Alpine Linux system. We need this for
build.postmarketos.org.
2018-12-13 09:13:07 +01:00
Robert Yang 9ec2f13a38 okular: Build epub backend (!100) 2018-12-13 08:32:20 +01:00
Grant Miller 7a916698dc temp/qemu: Update to upstream version 3.0.0-r0 (!99)
I didn't test it thoroughly, but it builds now and I can run
plasma-mobile on qemu-amd64.

[skip ci]: this takes longer than one hour to build in CI.
2018-12-13 08:27:48 +01:00
Grant Miller 2076d63cd4 temp/virglrenderer: Remove in favor of upstream aport (!101)
https://github.com/alpinelinux/aports/pull/4688 was merged, so we should
be able to delete temp/virglrenderer.
2018-12-13 07:37:30 +01:00
Oliver Smith 6179f45791 build_changed_aports: allow existing remote
In this CI test, we add the upstrem postmarketOS/pmaports.git
remote to the checked out git repository. Do not crash when it exists
already, so we don't need to remove it before each run when testing
locally.
2018-12-13 07:35:58 +01:00
Oliver Smith 683bc62f96 build_changed_aports: don't build deleted aports
Do not attempt to build deleted aports and fail on them. In the
overview of changed files, note which ones have been deleted.
2018-12-13 07:35:58 +01:00
Oliver Smith c7b42e9ed6 Cosmetic: build_changed_aports: improve comments
* Move a comment that was after a line of code above that line. That
  line was very long compared to all others in the file, and now the
  file fits in 80 characters in every line, like PEP-8 recommends.
* Replace "folder" with "dir" in the comments (as I learned lately
  that "folder" is only a Windows concept).
2018-12-13 07:35:58 +01:00
Zhuowei Zhang e735c3f008 New device: google-crosshatch (Google Pixel 3 XL) (!83)
A lot of patching was necessary, see the merge request and device wiki
page for details. Thanks to opendata26 for helping with the port.

https://wiki.postmarketos.org/wiki/Google_Pixel_3_XL_(google-crosshatch)

[skip ci]: this hits the compile timeout
2018-12-12 06:56:17 +01:00
Oliver Smith 017376be29 cross/busybox-static-*: update to 1.29.3-r4 2018-12-10 07:45:05 +01:00
Свободные Мобильные Технология f5e57dc9fd linux-samsung-i9003: install kernel modules (!98)
The modules wl12xx, mac80211 and cfg80211.ko are assembled as modules,
but due to the lack of the command 'make modules_install' in APKBUILD,
these modules are not included in the finished package. Because of this,
it was impossible to launch Wi-Fi on Samsung-i9003.
2018-12-10 06:54:37 +01:00
Robert Yang d7b3ea9b5f linux-samsung-p4wifi: update to kernel 4.19 (!97)
Modernize the APKBUILD. Load reboot mode kernel module, and uinput
kernel module (used by bluetoothd).

User facing changes:
* Uses some mainline sensor drivers.
* Fixes bluetooth audio stuttering (needs some userspace fixes though).

Various code refactoring happened. I tried to write a better looking
display panel driver rather than reuse the downstream driver. Not
quite there yet though.
2018-12-06 08:02:26 +01:00
Daniele Debernardi bde7c3b90b linux-samsung-klte: modernize, update sources (!94)
Use latest sources from LineageOS, instead of the ones from andip71.
The APKBUILD is modernized to use the devicepkg-dev but unfortunately
compiling with gcc8 it doesn't boot.

The kernel config is updated with the required options to start the
lxc-android container and xf86-video-hwcomposer works
(tested with xfce4).

My plan was to add the firmware-samsung-klte with the subpackages for
the wifi blobs and a precompiled android system.img to use with
libhybris, but my device just died and I'm not able to power it on (I've
probably burnt the Power IC 😢)
2018-12-06 07:16:45 +01:00
Grant Miller b99764378c linux-samsung-jflte: disable virtual framebuffer (!96)
Weston and Plasma Mobile were incorrectly choosing the virtual
framebuffer instead of the real one.
2018-12-05 08:55:16 +01:00
Piotr Halama dfedbf6485 samsung-s6500d: fix red screen (!95)
Fix red screen by setting CONFIG_FB_MSM_DEFAULT_DEPTH_ARGB8888=y, the
other patch from the wiki didn't work on this kernel:
https://wiki.postmarketos.org/wiki/Troubleshooting:display#My_screen_is_red.21
2018-12-05 08:13:35 +01:00
Grant Miller 15a1f45a4d linux-samsung-jflte: modernize and use gcc8 (!92)
Kernel still compiles and boots.
2018-12-04 07:42:48 +01:00
NeKit 4c085ddf54 libhybris: replace 7.1-caf pkg with separate test_hwcomposer binary (!88)
As observed on UBPorts, hwcomposer implementation on Android 7 CAF (non-Nexus
Qualcomm) devices has slight differences in employed structs, which makes
them binary incompatible with AOSP headers.

Halium 7.1 android-headers extracted from LineageOS include those
modifications (e. g. https://github.com/Halium/android-headers/blob/halium-7.1/hardware/hwcomposer.h#L290),
so it is enough to add QTI_BSP/QCOM_BSP to defines of programs utilizing
those headers. In case of libhybris, only test_hwcomposer is affected so
far on 7.1 (might be not true for Android 5.1/6!).

This change avoids providing libhybris-7.1-caf package by building a
separate binary of test_hwcomposer for affected devices.
2018-12-04 07:16:25 +01:00
Sicelo ec1016b385 Set tabbed layout as default for i3 on N900 (!91)
For i3 on the N900, which seems to be the only device using i3 at the
moment, I thought using Tabbed workspace layout as the default would be
best, since the screen is quite small, and having two split windows can
quickly make it impractical.

With this commit, all new windows will be created in tabbed
configuration. It is still possible to switch to stacking or standard
layout as needed, using the appropriate shortcut keys.
2018-12-03 23:40:17 +01:00
Daniele Debernardi e090a0a498 msm-fb-refresher: also do ioctl on errors (!89)
I noticed that some times the framebuffer driver gets configured in a
way that the ioctl performed by msm-fb-refresher returns something lower
than zero:

https://github.com/LineageOS/android_kernel_samsung_msm8974/blob/0ed263db093b1fc590589836ee36956c327998c3/drivers/video/fbmem.c#L877-L911

For example when the Xorg starts I noticed it does a ioctl BLANK and
UNBLANK, but if msm-fb-refresher performs a ioctl in that moment it
stops its loop and exit.

For this reason I lost a lot of time trying to understand what was the
problem with Xorg not displaying anything until I noticed that I had
to restart the msm-fb-refresher.

With this change we don't have to care about msm-fb-refresher as it will
continue call ioctl PAN even if the framebuffer returns some negative
error code.
2018-12-03 23:33:03 +01:00
Piotr Halama aaf1fbe17a samsung-s6500d: use gcc8 (!86)
It finally compiles with GCC8 and modernized prepare()

Signed-off-by: Piotr Halama <skrzynka@halamix2.pl>
2018-12-03 22:56:11 +01:00
Grant Miller 242ab9ac7a Recreate gcc8-fix-put-user.patch without context (!87)
gcc-fix-put-user.patch doesn't apply cleanly to any kernel that
includes commit 538094 ("ARM: 8051/1: put_user: fix possible data
corruption in put_user") or a backport of it because the surrounding
lines (context) of the patch are different:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=537094b64b229bf3ad146042f83e74cf6abe59df

This commit fixes the problem by removing the context from the patch. It
also changes linux-sony-amami, linux-sony-aries, and linux-sony-taoshan
to use the shared patch.

I have confirmed that all six affected kernels still compile. [skip ci]
2018-12-03 22:37:05 +01:00
rendeko 6e7c39bbe7 New device: Ouya (!80)
Ouya boots. Install instructions are being refined, but device does
boot through fastboot. Hoping to merge into master to encourage others
to contribute to the device.
2018-12-03 21:19:18 +01:00
Oliver Smith 7aded95988 Revert "linux-*: use upstream gcc6 [skip ci]"
This reverts commit ee659a5bb4
and increases the pkgrels of all affected linux pmaports.

I have compiled *every single kernel* that was modified with this
commit, and it worked. That took 12 hours. So I'm pretty confident that
this is a good commit. Let's roll it out and go back to stability \o/

I'll kick off the binary repo building directly after pushing this, but
it will take some time until all binary packages are available again.

[skip ci]: it wouldn't finish in time.
2018-12-01 12:10:10 +01:00
Oliver Smith a1acf0128d linux-infocus-flatfish: fix race condition
Add -j1 to compiling the standby code, which is compiled separately
already. This change seems to make the kernel always compile, I've
tried it 6 times, 3 times of that with pmbootstrap's "--no-ccache"
option. It got past an error about 30 seconds into the build, which
happened roughly 2 out of 10 times:

gcc6-armv6-alpine-linux-muslgnueabihf-ld: cannot find standby.o: No such file or directory

I thought, this was related to gcc6 changes, or to changes in abuild,
but both were not the case.

Grant Miller confirmed that this fixed the build, he was able to
compile the kernel ten times in a row with this commit.
2018-12-01 12:03:15 +01:00
Oliver Smith afd26b3b97 Revert "main/gcc6: delete in favor of Alpine's gcc6"
This reverts commit d56a2facfb
and changes the main/gcc6 pkgrel to 9999, so it will always be higher
than Alpine's version.
2018-12-01 11:59:48 +01:00
Oliver Smith 9a009ca393 various kde: increase pkgrel after soname bumps 2018-12-01 03:03:41 +01:00
Oliver Smith 1c0108f836 main/pmbootstrap: update to 1.0.4 2018-12-01 02:54:17 +01:00
Oliver Smith 9933a27128 temp/gcc6: remove again
The purpose of this package was to fill in until it is built in Alpine.
However, it takes forever to build the foreign arch versions. That's
due to the fact that GCC is compiling it self, and then the distcc
cross compiler magic does not work. Not worth it. [skip ci].
2018-11-30 19:34:37 +01:00
Oliver Smith fd20344cff temp/gcc6: adjust the APKBUILD so it builds with pmbootstrap
Further adjustments. It would have been better if I tried to build
it first, sorry for that. Another patch is coming in the pmbootstrap
repo, which makes it work even without the gcc6 pmaport.
2018-11-30 09:51:38 +01:00
Oliver Smith 7a6e8aa044 temp/gcc6: remove misleading second pkgname line
Remove the pkgname="$pkgname" line from the APKBUILD, this confuses
pmbootstrap.
2018-11-30 08:59:36 +01:00
Oliver Smith 5cef6135da temp/gcc6: add until Alpine builds it for arm
Copy Alpine's gcc6 aport to temp. They don't have it built for aarch64
and armhf at the moment. Due to dependency checks, this means we can't
build the kernels that need gcc6, even when cross compiling with
gcc6-armhf etc. See #138 for details.
2018-11-30 08:53:28 +01:00
Grant Miller ee659a5bb4 linux-*: use upstream gcc6 [skip ci]
Adjust HOSTCC to work with Alpine's version.
2018-11-29 09:16:00 +01:00
Grant Miller d56a2facfb main/gcc6: delete in favor of Alpine's gcc6
Alpine Linux ships their own GCC6 package now (side by side with GCC8):
https://git.alpinelinux.org/cgit/aports/commit/?id=f76673fb030820b2053cad7e5b81ece31079d4cc
2018-11-29 09:16:00 +01:00
Oliver Smith a9570538e2 weston: update to 5.0.0
pmaport recreated on top of Alpine's current aport. The --pixman-type
patches were removed, it would have needed to be rewritten to work with
newer Weston source code. It is a Weston specific workaround for a
problem with the downstream kernels, so this is better fixed in the
kernel source code:
https://wiki.postmarketos.org/wiki/Troubleshooting:display#My_screen_is_red.21

The ABGR patch was rebased and submitted for upstreaming here:
https://gitlab.freedesktop.org/wayland/weston/merge_requests/61

Fixes #136.
2018-11-29 07:52:48 +01:00
Oliver Smith 0ab7ce3676 tests: check for deviceinfo_weston_pixman_type
Make sure this obsolete option won't be used by future devices.
2018-11-29 07:31:06 +01:00
Oliver Smith 81c3b3c2dd devices: remove deviceinfo_weston_pixman_type
This is not supported anymore, see previous commit for reasoning.
2018-11-29 07:31:06 +01:00
Oliver Smith b4e50f18be postmarketos-ui-weston: remove --pixman-type hack
Do not add --pixman-type to the commandline, when
deviceinfo_weston_pixman_type is filled out.

--pixman-type was enabled in Weston with a custom patch, that currently
prevents us from upgrading Weston (#136).

The option allowed working around broken framebuffer drivers in
Android downstream kernels, which reported the wrong color format.
But it only works for Weston, the right way to patch this would be
patching the kernels, and we have some approaches here:
https://wiki.postmarketos.org/wiki/Troubleshooting:display#My_screen_is_red.21
2018-11-29 07:31:06 +01:00
Oliver Smith d4e4d02774 pmos-ui-plasma-mobile: enable software rendering
When rendering on framebuffer, always do software rendering. This
should make it possible to boot up Plasma Mobile on most devices with
downstream kernels, although terribly slow. Still better than a black
screen though. Tested and working on the samsung-i9100.

We can improve the code and possibly make the rendering mode
configurable per device once we experimented more with:
* llvmpipe vs. softpipe on various devices
* armv7 (around the corner in Alpine)
* a proper display manager like lightdm
2018-11-28 06:31:40 +00:00
Luca Weiss 069a27c331 mkbootimg-osm0sis: update to 2018.10.27 2018-11-27 20:18:58 +01:00
Konrad Dybcio 542acc1953 sony-tulip: new device (!77) 2018-11-27 07:52:26 +01:00
PureTryOut 48b497e22d kde-frameworks/*: update to 5.52.0 [skip ci] 2018-11-27 07:47:11 +01:00
Oliver Smith ffee5d6a4a cross/busybox-static-*: update to 1.29.3-r3 2018-11-27 07:47:11 +01:00
Martijn Braam 18366bb90b main/postmarketos-splash: add --raw (!75) 2018-11-27 07:50:28 +01:00
Daniele Debernardi e371209b29 fbdebug: Add options to retrieve the colormap and set the fb mode 2018-11-27 07:47:11 +01:00
Oliver Smith 4468cf9b97 Various N900 improvements, change default i3 terminal to "st" 2018-11-27 07:47:11 +01:00
PureTryOut 7728b65460 temp/qt5-qtdeclarative: rebuild to resolve graphic issue introduced by !63 2018-11-27 07:47:11 +01:00
Piotr Halama 87434c2062 sony-taoshan: add Sony Xperia L 2018-11-27 07:47:11 +01:00
Oliver Smith 1358b1a91d cross/gcc-*: update to upstream (8.2.0-r1) 2018-11-27 07:47:11 +01:00
Oliver Smith 80a704e1c6 cross/binutils-*: regenerate aports (update src url)
Download URL was changed from HTTP to HTTPS in Alpine's binutils
aport. Adjust our automatically generated binutils-* aports.
2018-11-27 07:47:11 +01:00
Martijn Braam ab939626f5 device/device-tablet-x64uefi: new aport (!68) 2018-11-27 07:49:03 +01:00
Oliver Smith 4dbbfbc0ba main/postmarketos-ui-i3wm: fix lightdm autostart 2018-11-27 07:47:11 +01:00
Oliver Smith a777bf071b kfilemetadata: bump pkgrel after soname bump 2018-11-27 07:47:11 +01:00
PureTryOut eb582ea44e main/postmarketos-ui*: use lightdm for X11 UIs 2018-11-27 07:47:11 +01:00
Michael Hamann aefde918c3 linux-samsung-n5110: backport getrandom syscall #107
This is a simple backport of the getrandom syscall. It does not
include other changes to the random interface like periodic or
late re-seeding which might be necessary to get good random numbers.
2018-11-27 07:47:11 +01:00
Oliver Smith 2f125587fe cross/busybox-static-*: update to 1.29.3-r2 2018-11-27 07:47:11 +01:00
Oliver Smith 46aaf093f0 pmos-ui-plasma-mobile: disable angelfish, vvave
Both depend on qt5-qtwebengine, which needs to be rebuilt in Alpine
after the soname bump of libavformat [1]. Disable them for now, so
plasma mobile can still be installed, and the pmbootstrap test case
that installs it runs through again.

[1]: https://github.com/alpinelinux/aports/pull/5586
2018-11-27 07:47:11 +01:00
Oliver Smith c7096e13ad kde/kfilemetadata: rebuild after soname bump
in libavformat.so
2018-11-27 07:47:11 +01:00
Oliver Smith 70a3d3b9d5 cross/*-x86_64: remove aports
These can be manually generated when one really wants to cross compile
from arm to x86_64. Usually this is not needed, so let's save the
compile time. [skip ci]
2018-11-27 07:47:11 +01:00
Robert Yang 9b250a94a7 samsung-p4wifi: Add grate driver as dependency
[skip-ci]
2018-11-27 07:47:11 +01:00
Robert Yang ce429a7f80 New aport libvdpau-tegra 2018-11-27 07:47:11 +01:00
Robert Yang 102a2cb2d8 New aport xf86-video-opentegra 2018-11-27 07:47:11 +01:00
Robert Yang fda3dd366a mesa-grate: Build mesa from grate driver sources
[skip ci]
2018-11-27 07:47:11 +01:00
Robert Yang 1c75f5080f New aport mesa-grate
Copied from upstream alpinelinux/aports main/mesa

[skip ci]
2018-11-27 07:47:11 +01:00
Robert Yang d35de1376d libdrm-grate: Build libdrm from grate driver sources 2018-11-27 07:47:11 +01:00
Robert Yang e64b70bd5c New aport libdrm-grate
Copied from upstream alpinelinux/aports main/libdrm

[skip ci]
2018-11-27 07:47:11 +01:00
Robert Yang 75feba5476 New aport ldpath
Utility to add or remove paths from musl dynamic linker config file
2018-11-27 07:47:11 +01:00
Oliver Smith 2e7437825b cross/gcc*: set arch to x86_64 only
This covers most use cases and saves a lot of build time. Can be
changed on demand. Again, this simplifies package building as part of
the new build infrastructure effort. [skip ci]
2018-11-27 07:47:11 +01:00
Oliver Smith 9b4a1b0a53 main/kernel-scripts: fix build
Adjust the mime-type that gets used to find executables to
application/x-pie-executable and change the APKBUILD logic to print out
a meaningful error when the executables can not be found.

Also fix the broken patch logic (doesn't display an error anymore).
2018-11-27 07:47:11 +01:00
Oliver Smith aee2acaeb9 main/kernel-scripts: bump after openssl switch
Alpine switched from libressl to openssl in edge. And we're lucky, this
is the only package that needs to be rebuilt :)
2018-11-27 07:47:11 +01:00
PureTryOut 1834a92a5b kde-frameworks/*: update to 5.51.0 2018-11-27 07:47:11 +01:00
Oliver Smith 771612344d other device related packages: don't use noarch
It does not make sense to build most of them for x86_64 for example.
2018-11-27 07:47:11 +01:00
Oliver Smith 82fb0a2d59 pmbootstrap: update to 1.0.3 2018-11-27 07:47:11 +01:00
Oliver Smith ac6c0a2997 test_aports.py: disallow noarch device packages
Check if all device packages have the same arch in their device
APKBUILD as they have in their deviceinfo. And that they have
!archcheck set in the options.
2018-11-27 07:47:11 +01:00
Oliver Smith 658b6c75c9 pmaports.cfg: require pmbootstrap 1.0.3
The new version doesn't create noarch device packages anymore.
2018-11-27 07:47:11 +01:00
Oliver Smith 9814d78e73 device-*: don't use noarch anymore
Use the device's architecture instead of noarch. Because the device
packages should never be built for other architectures, even if all
depends can be built for other arches as well.

This simplifies package building as part of the new build
infrastructure effort.

pmbootstrap has also been changed to output this by default in
aportgen.
2018-11-27 07:47:11 +01:00
Bart Ribbers d32efabc06 temp/qt5-qtbase: only use OpenGL ES2 for arm* architectures 2018-11-27 07:47:11 +01:00
Oliver Smith 61489b8367 cross/busybox-static-*: update to 1.29.3-r1 2018-11-27 07:47:11 +01:00
Martijn Braam adaf4f3ced Added build helper for sr.ht 2018-11-27 07:47:11 +01:00
pinoaffe 0188930f21 main/postmarketos-mkinitfs: iterate over all block devices and partitions in init_functions.sh:mount_subpartitions() 2018-11-27 07:47:11 +01:00
Robert Yang 467c240aee hybris: Correct the musl runtime linker config file name for armhf 2018-11-27 07:47:11 +01:00
Oliver Smith 70496ed696 luna/*: remove LuneOS UI aports
They have been unmaintained and didn't build for months now.
Removing, so the new build infra structure can build all packages and
we don't need to exclude this folder anymore like we are doing now.
More information: <https://wiki.postmarketos.org/wiki/LuneOS_UI>

[skip ci]
2018-11-27 07:47:11 +01:00
sylvieon 31386bfc02 wingtech-wt88047: initial support (xiaomi redmi 2) 2018-11-27 07:47:11 +01:00
Attila Szöllősi ea341e8b2f Autodetect fstab column order and support flashing to e.g. userdata
Before, flashing was just possible to system / external_sd and not to
userdata ("data").
2018-11-27 07:47:11 +01:00
Pierre Parent 5db8fd724c main/pmos-mkinitfs: wait for rootfs, framebuffer
Fix Nexus 5 (hammerhead) boot and framebuffer issues at startup by
waiting up to 10 seconds until the rootfs and /dev/fb0 have been
found. Waiting for the framebuffer device can be disabled by setting
deviceinfo_no_framebuffer=true in the deviceinfo.
2018-11-27 07:47:11 +01:00
Luca Weiss ea0040efc1 pmos-android-recovery-install: copy mtk symlinks
Copy Mediatek /emmc@partitionname symlinks to the chroot. This is
needed on Mediatek devices because the fstab file references the
partitions using those symlinks (which the kernel creates - for
whatever reason - in the root directory) and otherwise we don't know
which partition is which.
2018-11-27 07:47:11 +01:00
Valentin Marinov a5c1b210c9 linux-sony-amami: Backport getrandom to support libressl on linux < 3.17 2018-11-27 07:47:11 +01:00
Bart Ribbers bd38a672bb main/pmbootstrap: update to 1.0.2 2018-11-27 07:47:11 +01:00
Grant Miller f30758fb4a samsung-jflte: Modernize and fix splashscreen and osk-sdl 2018-11-27 07:47:11 +01:00
PureTryOut 2d2e53e95b maemo/hildon*: update to latest upstream versions 2018-11-27 07:47:11 +01:00
Rogier Oudshoorn f02b100ee9 samsung-serranodsdd: new device (!48) 2018-11-27 07:47:11 +01:00
Luca Weiss 98c88bd9f6 Fairphone 1 support 2018-11-27 07:47:11 +01:00
Konrad Dybcio 9d8928f2a0 linux-sony-nicki: modernize with new gcc8 linux aportgen code 2018-11-27 07:47:11 +01:00
Valentin Marinov a82204c127 linux-sony-aries: modernize with new gcc8 linux aportgen code 2018-11-27 07:47:11 +01:00
Valentin Marinov 9666ffaa98 device-sony-amami: Xperia Z1 compact needs /etc/fb.modes for charging-sdl 2018-11-27 07:47:11 +01:00
Valentin Marinov 6c015c95ae linux-sony-amami: modernize with new gcc8 linux aportgen code 2018-11-27 07:47:11 +01:00
unrznbl 3324b51fdd first step of porting motorola-harpia to motorola-surnia (Moto E) 2018-11-27 07:47:11 +01:00
Daniele Debernardi 9249bf2122 Add support to different deviceinfo variables in mainline/downstream subpackages 2018-11-27 07:47:11 +01:00
Robert Yang 10cbdc7225 linux-samsung-i9100: modernize with new gcc8 linux aportgen code 2018-11-27 07:47:11 +01:00
Robert Yang da08bebb0b devicepkg-dev: Make downstreamkernel_prepare callable from any folder
Removes the need to cd $builddir before calling downstreamkernel_prepare
in a kernel APKBUILD prepare function.
2018-11-27 07:47:11 +01:00
PureTryOut 2274c1326d Remove internal qmltermwidget from index, resolves #111 2018-11-27 07:47:11 +01:00
Luca Weiss 272820674e Initial audio support on FP2 2018-11-27 07:47:11 +01:00
Daniele Debernardi 632dac179d chocolate-doom: Remove package 2018-11-27 07:47:11 +01:00
Danct12 b790d6f764 new device: ASUS Zenfone Go (Z00VD) 2018-11-27 07:47:11 +01:00
PureTryOut 9e7e7c4bc4 Add some new KDE applications 2018-11-27 07:47:11 +01:00
Bart Ribbers c62b3642dc Remove unnecessary source of /etc/deviceinfo 2018-11-27 07:47:11 +01:00
Daniele Debernardi f1841337e7 apk-file: Remove package 2018-11-27 07:47:11 +01:00
Oliver Smith c7dd66ad40 increase min. required pmbootstrap version
Also related to the GCC6/GCC8 kernel changes.
2018-11-27 07:47:11 +01:00
Oliver Smith 652105d7fc increase pmaports version
After all the GCC6-as-extra-package related changes.
2018-11-27 07:47:11 +01:00
Oliver Smith 3d99fad482 linux-lg-mako: modernize with new gcc8 linux aportgen code 2018-11-27 07:47:11 +01:00
Oliver Smith ea45d2d4ed devicepkg-dev: ship compiler-gcc.h for GCC8
We used to put a "compiler-gcc6.h" file inside every vendor kernel's
aport. This is redundant and only works with GCC6. With this patch,
a common "compiler-gcc.h" file will be used, that works independently
of the GCC version.

The file is from Decatf's android_kernel_samsung_p4 repository, where
it was taken from upstream Linux, but adjusted to work with older
vendor kernels (different #ifndef check at the top etc).

https://github.com/Decatf/android_kernel_samsung_p4/blob/bd0772df2132bf56cda78e7204facf434cd5aa40/include/linux/compiler-gcc.h
2018-11-27 07:47:11 +01:00
Oliver Smith b90a4abbe0 add shared patches for GCC8 compatibility
This introduces a new .shared-patches folder. New
"pmbootstrap aportgen" code will make use of this, and create symlinks
to the patches inside that folder when running
"pmbootstrap aportgen linux-..." (or using the new device wizard).
2018-11-27 07:47:11 +01:00
Pierre Parent 7dca9c4703 Fix hammerhead (Nexus 5) backlight. 2018-11-27 07:47:11 +01:00
Pierre Parent 45d4d7ec58 Remove CONFIG_SERIAL_MSM_CONSOLE from conf to avoid booting loops when no serial cable plugged in.
see https://gitlab.com/postmarketOS/pmaports/issues/105
partial revert of https://gitlab.com/postmarketOS/pmaports/commit/f2a27fc0dffa03533e349a60fcb5b2688a6e4c90
2018-11-27 07:47:11 +01:00
Oliver Smith 4472448e6b device/linux-*: make all kernels compile again
All kernels compile again, after the GCC 8 upgrade.

All 3.x kernels have been changed to use GCC 6 now, because we can't
say for sure that they boot with GCC 8 even if we made them compile
with that newer GCC. If someone wants to test a kernel for a newer
device which they can test, see the instructions on
<https://postmarketos.org/vendorkernel>.

The linux-sony-castor-windy 4.x kernel did not compile out of the box
with the latest GCC, so we set it to GCC 6 as well. This can probably
be fixed easily.

linux-teclast-x80-pro: removed Werror and updated to latest 4.14 kernel
from kernel.org, otherwise this would not compile anymore (tested with
both GCC 6 and 8, probably incompatibility with the latest binutils or
something).

This commit will take too long to compile in CI, so let's [skip ci].
I've compiled all kernels multiple times and fixed them up until all of
them were working again.

Related: #103
2018-11-27 07:47:11 +01:00
Bart Ribbers 1303b77c08 Bump pkgrel of qt5-qtbase and libphonenumber to resolve soname 2018-11-27 07:47:11 +01:00
Oliver Smith c2f57b050e bump pkgrel 2018-11-27 07:47:11 +01:00
Sebastian Fleer e7f828b07f networkmanager: use built in dhcp client
Network Manager does not support dhcpcd with IPv6. Fixes issue #45
2018-11-27 07:47:11 +01:00
Daniele Debernardi 084663e6cc linux-postmarketos-qcom: Enable serial console 2018-11-27 07:47:11 +01:00
Luca Weiss 12d0e92bf5 Add editorconfig file from Alpine
(this text is copied too)
If a user has an editorconfig plugin for their editor,
it will enforce tabs instead of spaces for indentation
for APKBUILD files. It ignores other files in the repo.
2018-11-27 07:47:11 +01:00
NotKit d3c369bc43 Update libhybris and add more related packages 2018-11-27 07:47:11 +01:00
Daniele Debernardi e07a79aa5d Add initfs hook which causes a kernel panic (useful for debugging) 2018-11-27 07:47:11 +01:00
Oliver Smith dd17dc5c06 */gcc6*: properly regenerate aports with aportgen
I did it manually in the previous commit and replaced the wrong for
loop in gcc6-armhf. [skip ci]
2018-11-27 07:47:11 +01:00
Oliver Smith 1b78e64748 */gcc6*: add symlinks for all binutils [skip ci]
I thought only having specific symlinks was enough, and it was for one
kernel. However, to make sure it works with all kernels, let's just add
symlinks for all the binutils.
2018-11-27 07:47:11 +01:00
Oliver Smith 7e89296ab4 */gcc6*: bump pkgrel [skip ci] 2018-11-27 07:47:11 +01:00
Oliver Smith 4dbef543cd */gcc6*: add objdump symlink [skip ci]
Without this symlink, lots of messages like this one appear while
compiling kernels:

/bin/sh: gcc6-armv6-alpine-linux-muslgnueabihf-objdump: not found
2018-11-27 07:47:11 +01:00
Oliver Smith 1ffa59d892 cross/gcc-*, cross/gcc6-*: regenerate [skip ci]
GCC6 cross compiler packages, based on the latest pmbootstrap
aportgen code. Related: #103
2018-11-27 07:47:11 +01:00
Oliver Smith 7bff136eea main/gcc6: symlink for objcopy is also required
With this commit, pmbootstrap!1699 and a few changes in a linux aport,
it finally compiled successfully with gcc6 \o/

Details described in #103.
2018-11-27 07:47:11 +01:00
Oliver Smith 4101340742 main/gcc6: first changes for gcc6 cross compilers
* remove everything that causes conflicts when installing gcc6 and
  gcc6-armhf side by side
* fix up the existing "if cross compiling" code path to use the
  /usr/gcc6 prefix
* link binutils binaries to the locations they are expected to be
  by gcc (this took me hours to figure out....) as well as by the
  linux build system with CROSS_COMPILE
* link all gcc binaries to /usr/bin/gcc6-*
2018-11-27 07:47:11 +01:00
Oliver Smith 479055e896 cross/busybox-*: update to 1.29.3-r0 2018-11-27 07:47:11 +01:00
Oliver Smith 737cff798a Add gcc6 aport
Based on the last version from Alpine, but installed to /usr/gcc6 and
with pretty much everything disabled except for the C compiler.

We can probably throw out a lot of patches, and make the APKBUILD much
smaller. But let's focus on making it possible to compile old kernels
again first. There's still a lot to do for that, see #103.
2018-11-27 07:47:11 +01:00
Oliver Smith 56f1e0c10f cross/gcc-*: upgrade to gcc 8.2.0 [skip ci]
Skipping CI, because it would probably not finish building all of them.
Major breakage incoming. Details discussed here:
<https://gitlab.com/postmarketOS/pmaports/issues/103>
2018-11-27 07:47:11 +01:00
Oliver Smith 022240425a cross/binutils-*: update to 2.31.1-r1 (+ patches)
I've missed the patch files in the previous commit, my bad.

This reverts commit 71ffb78557.
2018-11-27 07:47:11 +01:00
Oliver Smith 17ba355220 cross/binutils-*: update to 2.31.1-r1 2018-11-27 07:47:11 +01:00
Pierre Parent 290bf810d4 main/qtwebbrowser: new aport (!16) 2018-11-27 07:47:17 +01:00
Oliver Smith 36f4e86688 CI package build: don't buffer output and silent "git fetch" 2018-09-26 05:57:29 +00:00
Luca Weiss 25380ced2f Fix detecting changed aports 2018-09-25 05:29:15 +00:00
Martijn Braam 4e940e519d Enabled QCDT for motorola-osprey 2018-09-24 22:02:54 +00:00
PureTryOut 81822748af Add pmbootstrap as package 2018-09-22 09:36:36 +00:00
Oliver Smith e9fd509914 Remove obsolete test case test_aportgen.py
This test case only makes sense in the pmbootstrap repository, and
we have it there already. In pmaports, we don't need to check if the
"aportgen" code is working - and to check the versions of the aports
we already have the test_upstream_compatibility case.
2018-09-22 11:24:13 +02:00
Daniele Debernardi bbc4b6bbfe cross/musl-armhf cross/musl-aarch64 cross/musl-x86_64: Update aports to 1.1.20-r2 2018-09-21 23:00:59 +02:00
2154 changed files with 310139 additions and 29045 deletions

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
---
# C and C++ code
Language: Cpp
BasedOnStyle: WebKit
DerivePointerAlignment: false
PointerAlignment: Right
TabWidth: 4
UseTab: Always
...
+14
View File
@@ -0,0 +1,14 @@
; This file is for unifying the coding style for different editors and IDEs.
; Plugins are available for notepad++, emacs, vim, gedit,
; textmate, visual studio, and more.
;
; See http://editorconfig.org for details.
# Top-most EditorConfig file.
root = true
[**/APKBUILD]
indent_style = tab
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
+45 -4
View File
@@ -1,16 +1,31 @@
---
# global settings
image: alpine:3.8
image: alpine:latest
after_script:
- .gitlab-ci/move_logs.sh $CI_PROJECT_DIR
stages:
- first
- second
# defaults for "only"
# We need to run the CI jobs in a "merge request specific context", if CI is
# running in a merge request. Otherwise the environment variable that holds the
# merge request ID is not available. This means, we must set the "only"
# variable accordingly - and if we only do it for one job, all other jobs will
# not get executed. So have the defaults here, and use them in all jobs that
# should run on both the master branch, and in merge requests.
# https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html#excluding-certain-jobs
.only-default: &only-default
only:
- master
- merge_requests
- tags
# device documentation
wiki:
stage: first
<<: *only-default
before_script:
- apk -q add python3
script:
@@ -19,6 +34,7 @@ wiki:
# static code analysis (shellcheck is not in Alpine, so we use Debian)
py-sh-static:
stage: first
<<: *only-default
image: python:3.6-slim-stretch
before_script:
- apt -q update >/dev/null
@@ -26,14 +42,27 @@ py-sh-static:
script:
- .gitlab-ci/static_code_analysis.sh
# coding style check
clang-format-static:
stage: first
<<: *only-default
before_script:
- apk -q add clang git
script:
- .gitlab-ci/static_clang-format.sh
# aports checks (generic)
aports-static:
stage: first
<<: *only-default
before_script:
- .gitlab-ci/install_pmbootstrap.sh pytest
script:
- apk -q add git
- su pmos -c "pmbootstrap kconfig check"
- su pmos -c ".gitlab-ci/run_testcases.sh
-m 'not pmaports_upstream_compat'"
- su pmos -c ".gitlab-ci/check_changed_aports_versions.py"
artifacts:
when: on_failure
paths:
@@ -42,9 +71,22 @@ aports-static:
- pmbootstrap.cfg
expire_in: 1 week
# MR settings
# (Checks for "Allow commits from members who can merge to the target branch")
mr-settings:
stage: first
only:
- merge_requests
before_script:
- apk -q add python3
script:
- .gitlab-ci/check_mr_settings.py
# aports checks (upstream compatibility)
aports-static-upstream:
stage: second
only:
- master@postmarketOS/pmaports
before_script:
- .gitlab-ci/install_pmbootstrap.sh pytest
script:
@@ -57,13 +99,12 @@ aports-static-upstream:
- log_testsuite_pmaports.txt
- pmbootstrap.cfg
expire_in: 1 week
only:
- master
# build changed aports
aports-build:
stage: second
<<: *only-default
before_script:
- .gitlab-ci/install_pmbootstrap.sh git
script:
- su pmos -c ".gitlab-ci/build_changed_aports.py"
- PYTHONUNBUFFERED=1 su pmos -c ".gitlab-ci/build_changed_aports.py"
+24 -78
View File
@@ -1,91 +1,37 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import subprocess
import sys
# Same dir
import common
def get_pmaports_dir():
return os.path.realpath(os.path.join(os.path.dirname(__file__) + "/.."))
def run_git(parameters):
""" Run git in the pmaports folder and return the output """
cmd = ["git", "-C", get_pmaports_dir()] + parameters
return subprocess.check_output(cmd).decode()
def run_pmbootstrap(parameters):
""" Run pmbootstrap with the pmaports folder as --aports """
cmd = ["pmbootstrap", "--aports", get_pmaports_dir()] + parameters
process = subprocess.Popen(cmd)
process.communicate()
if process.returncode != 0:
print("** Building failed")
exit(1)
def get_changed_files():
""" Get all changed files and print them, as well as the branch and the
commit that was used for the diff.
:returns: list of changed files
"""
# Current branch
branch = run_git(["rev-parse", "--abbrev-ref", "HEAD"])[:-1]
print("branch: " + branch)
# Commit to diff against
commit = "HEAD~1"
if branch != "master":
commit = run_git(["merge-base", "master", "HEAD"])[:-1]
print("comparing HEAD with: " + commit)
# Changed files
ret = run_git(["diff", "--name-only", commit, "HEAD"]).splitlines()
print("changed file(s):")
for file in ret:
print(" " + file)
return ret
def get_changed_packages():
files = get_changed_files()
ret = set()
for file in files:
# Skip files in the root folder of pmaports as well as folders
# beginning with a dot (.gitlab-ci/)
if "/" not in file or file.startswith("."):
continue
# Add to the ret set (removes duplicated automatically)
ret.add(file.split("/")[1])
if len(ret) > 10:
print("ERROR: Too many packages have changed!")
print("This is a sanity check, so we don't end up building packages"
" that have not been modified. CI won't run for more than one"
" hour anyway.")
print("If you see this message on your personal fork of the"
" pmbootstrap repository, try to update your fork's master"
" branch to the upstream master branch.")
sys.exit(1)
return ret
def check_build(packages):
def check_build(packages, verify_only=False):
# Initialize build environment with less logging
run_pmbootstrap(["build_init"])
run_pmbootstrap(["--details-to-stdout", "build", "--strict"] +
list(packages))
common.run_pmbootstrap(["build_init"])
if verify_only:
common.run_pmbootstrap(["--details-to-stdout", "checksum",
"--verify"] + list(packages))
else:
common.run_pmbootstrap(["--details-to-stdout", "build", "--strict",
"--force"] + list(packages))
if __name__ == "__main__":
packages = get_changed_packages()
# Get and print modified packages
common.add_upstream_git_remote()
packages = common.get_changed_packages()
# Build changed packages
common.get_changed_packages_sanity_check(len(packages))
if len(packages) == 0:
print("no aports changed in this branch")
else:
print("building in strict mode: " + ", ".join(packages))
check_build(packages)
verify_only = common.commit_message_has_string("[ci:skip-build]")
if verify_only:
print("WARNING: not building changed packages ([ci:skip-build])!")
print("verifying checksums: " + ", ".join(packages))
else:
print("building in strict mode: " + ", ".join(packages))
check_build(packages, verify_only)
+147
View File
@@ -0,0 +1,147 @@
#!/usr/bin/env python3
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
import tempfile
import sys
import subprocess
# Same dir
import common
# pmbootstrap
import testcases.add_pmbootstrap_to_import_path # noqa
import pmb.parse
import pmb.parse.version
import pmb.helpers.logging
def get_package_version(args, package, revision, check=True):
# Redirect stderr to /dev/null, so git doesn't complain about files not
# existing in master for new packages
stderr = None
if not check:
stderr = subprocess.DEVNULL
# Run something like "git show upstream/master:main/hello-world/APKBUILD"
pmaports_dir = common.get_pmaports_dir()
pattern = pmaports_dir + "/*/" + package + "/APKBUILD"
path = glob.glob(pattern)[0][len(pmaports_dir + "/"):]
apkbuild_content = common.run_git(["show", revision + ":" + path], check,
stderr)
if not apkbuild_content:
return None
# Save APKBUILD to a temporary path and parse it from there. (Not the best
# way to do things, but good enough for this CI script.)
with tempfile.TemporaryDirectory() as tempdir:
with open(tempdir + "/APKBUILD", "w", encoding="utf-8") as handle:
handle.write(apkbuild_content)
parsed = pmb.parse.apkbuild(args, tempdir + "/APKBUILD", False, False)
return parsed["pkgver"] + "-r" + parsed["pkgrel"]
def version_compare_operator(result):
""" :param result: return value from pmb.parse.version.compare() """
if result == -1:
return "<"
elif result == 0:
return "=="
elif result == 1:
return ">"
raise RuntimeError("Unexpected version_compare_operator input: " + result)
def exit_with_error_message():
print()
print("ERROR: Modified package(s) don't have an increased version!")
print()
print("This can either happen if you did not change the pkgver/pkgrel")
print("variables in the APKBUILDs. Or you did change them, but the")
print("packages have been updated in the official master branch, and now")
print("your versions are not higher anymore.")
print()
print("Your options:")
print("a) If you made changes to the packages, and did not increase the")
print(" pkgrel/pkgver: increase them now, and force push your branch.")
print(" => https://postmarketos.org/howto-bump-pkgrel-pkgver")
print("b) If you had already increased the package versions, rebase on")
print(" master, increase the versions again and then force push:")
print(" => https://postmarketos.org/rebase")
print("c) If you made a change, that does not require rebuilding the")
print(" packages, such as only changing the arch=... line: you can")
print(" disable this check by adding '[ci:skip-vercheck]' to the")
print(" latest commit message, then force push.")
print()
print("Thank you and sorry for the inconvenience.")
exit(1)
def check_versions(args, packages):
error = False
# Get relevant commits: compare HEAD against upstream/master or HEAD~1
# (the latter if this CI check is running on upstream/master). Note that
# for the common.get_changed_files() code, we don't check against
# upstream/master, but against the latest common ancestor. This is not
# desired here, since we already know what packages changed, and really
# want to check if the version was increased towards *current* master.
commit = "upstream/master"
if common.run_git(["rev-parse", "HEAD"]) == common.run_git(["rev-parse",
commit]):
print("NOTE: upstream/master is on same commit as HEAD, comparing"
" HEAD against HEAD~1.")
commit = "HEAD~1"
for package in packages:
# Get versions, skip new packages
head = get_package_version(args, package, "HEAD")
master = get_package_version(args, package, commit, False)
if not master:
print("- {}: {} (HEAD) (new package)".format(package, head))
continue
# Compare head and master versions
result = pmb.parse.version.compare(head, master)
if result != 1:
error = True
# Print result line ("- hello-world: 1-r2 (HEAD) > 1-r1 (HEAD~1)")
formatstr = "- {}: {} (HEAD) {} {} ({})"
if result != 1:
formatstr += " [ERROR]"
operator = version_compare_operator(result)
print(formatstr.format(package, head, operator, master, commit))
if error:
exit_with_error_message()
if __name__ == "__main__":
# Get and print modified packages
common.add_upstream_git_remote()
packages = common.get_changed_packages()
# Verify modified package count
common.get_changed_packages_sanity_check(len(packages))
if len(packages) == 0:
print("no aports changed in this branch")
exit(0)
# Potentially skip this check
if common.commit_message_has_string("[ci:skip-vercheck]"):
print("WARNING: not checking for changed package versions"
" ([ci:skip-vercheck])!")
exit(0)
# Initialize args (so we can use pmbootstrap's APKBUILD parsing)
sys.argv = ["pmbootstrap.py", "chroot"]
args = pmb.parse.arguments()
pmb.helpers.logging.init(args)
# Verify package versions
print("checking changed package versions...")
check_versions(args, packages)
+3 -4
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
@@ -92,8 +92,7 @@ def main():
print("Now it's time to add some documentation:")
print("1) Create a device specific wiki page as described here:")
print(" <https://wiki.postmarketos.org/wiki/Help:Device_Page>")
print("2) Add your device to the overview matrix:")
print(" <https://wiki.postmarketos.org/wiki/Devices>")
print("2) Set 'booting = yes' in the infobox of your device page.")
print("3) Run these tests again with an empty commit in your MR:")
print(" $ git commit --allow-empty -m 'run tests again'")
print("")
@@ -101,7 +100,7 @@ def main():
print("precious porting efforts visible for others, and allow them")
print("not only to use what you have created, but also to build upon")
print("it more easily. Many times one person did a port with basic")
print("functionallity, and then someone else jumped in and")
print("functionality, and then someone else jumped in and")
print("contributed major new features.")
return 1
else:
+156
View File
@@ -0,0 +1,156 @@
#!/usr/bin/env python3
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
import json
import os
import sys
import urllib.parse
import urllib.request
def check_environment_variables():
""" Make sure that all environment variables from GitLab CI are present,
and exit right here when a variable is missing. """
keys = ["CI_MERGE_REQUEST_IID",
"CI_MERGE_REQUEST_PROJECT_PATH",
"CI_MERGE_REQUEST_SOURCE_PROJECT_URL"]
for key in keys:
if key in os.environ:
continue
print("ERROR: missing environment variable: " + key)
print("Reference: https://docs.gitlab.com/ee/ci/variables/")
exit(1)
def get_url_api():
""" :returns: single merge request API URL, as documented here:
https://docs.gitlab.com/ee/api/merge_requests.html#get-single-mr """
project_path = os.environ["CI_MERGE_REQUEST_PROJECT_PATH"]
project_path = urllib.parse.quote_plus(project_path)
mr_id = os.environ["CI_MERGE_REQUEST_IID"]
url = "https://gitlab.com/api/v4/projects/{}/merge_requests/{}"
return url.format(project_path, mr_id)
def get_url_mr_edit():
""" :returns: the link where the user can edit their own MR """
url = "https://gitlab.com/{}/merge_requests/{}/edit"
return url.format(os.environ["CI_MERGE_REQUEST_PROJECT_PATH"],
os.environ["CI_MERGE_REQUEST_IID"])
def get_url_repo_settings():
""" :returns: link to the user's forked pmaports project's settings """
prefix = os.environ["CI_MERGE_REQUEST_SOURCE_PROJECT_URL"]
return prefix + "/settings/repository"
def get_mr_settings(path):
""" Get the merge request API data and parse it as JSON. Print the whole
thing on failure.
:param path: to a local file with the saved API data (will download a
fresh copy when set to None)
:returns: dict of settings data (see GitLab API reference) """
content = ""
if path:
# Read file
with open(path, encoding="utf-8") as handle:
content = handle.read()
else:
# Download from GitLab API
url = get_url_api()
print("Download " + url)
content = urllib.request.urlopen(url).read().decode("utf-8")
# Parse JSON
try:
return json.loads(content)
except:
print("ERROR: failed to decode JSON. Here's the whole content for"
" debugging:")
print("---")
print(content)
exit(1)
def settings_read(settings, key):
if key not in settings:
print("ERROR: missing '" + key + "' key in settings!")
print("Here are the whole settings for debugging:")
print("---")
print(settings)
exit(1)
return settings[key]
def check_allow_push(settings):
""" :returns: True when maintainers are allowed to push to the branch
(what we want!), False otherwise """
# Check if source branch is in same repository
source = settings_read(settings, "source_project_id")
target = settings_read(settings, "target_project_id")
if source == target:
return True
return settings_read(settings, "allow_maintainer_to_push")
def main():
# Parse arguments
parser = argparse.ArgumentParser()
parser.add_argument("--path", help="use a local file instead of querying"
" the GitLab API", default=None)
args = parser.parse_args()
# Check the merge request
check_environment_variables()
settings = get_mr_settings(args.path)
# Make sure that squashing is disabled
if settings_read(settings, "squash"):
print("*** MR settings check failed!")
print('ERROR: Please turn off the "Squash commits when merge request'
' is accepted." option in the merge request settings.')
return 1
if check_allow_push(settings):
print("*** MR settings check successful!")
else:
print("*** MR settings check failed!")
print()
print("We need to be able to push changes to your merge request.")
print("So we can rebase it on master right before merging, add the")
print("MR-ID to the commit messages, etc.")
print()
print("How to fix it:")
print("1) Open the 'edit' page of your merge request:")
print(" " + get_url_mr_edit())
print("2) Enable this option and save:")
print(" 'Allow commits from members who can merge to the target"
" branch'")
print("3) Run these tests again with an empty commit in your MR:")
print(" $ git commit --allow-empty -m 'run mr-settings test again'")
print()
print("If that setting is disabled, then you have created the MR from")
print("a protected branch. When you had forked the repository from")
print("postmarketOS, the protected branch settings were copied to")
print("your fork.")
print()
print("Resolve this with:")
print("1) Open your repository settings:")
print(" " + get_url_repo_settings())
print("2) Scroll down to 'Protected Branches' and expand it")
print("3) Click 'unprotect' next to the branch from your MR")
print("4) Follow steps 1-3 from the first list again, the option")
print(" should not be disabled anymore.")
print()
print("Thank you and sorry for the inconvenience.")
return 1
return 0
sys.exit(main())
+136
View File
@@ -0,0 +1,136 @@
#!/usr/bin/env python3
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Various functions used in CI scripts
import os
import subprocess
import sys
def get_pmaports_dir():
return os.path.realpath(os.path.join(os.path.dirname(__file__) + "/.."))
def run_git(parameters, check=True, stderr=None):
""" Run git in the pmaports dir and return the output """
cmd = ["git", "-C", get_pmaports_dir()] + parameters
try:
return subprocess.check_output(cmd, stderr=stderr).decode()
except subprocess.CalledProcessError:
if check:
raise
return None
def add_upstream_git_remote():
""" Add a remote pointing to postmarketOS/pmaports. """
run_git(["remote", "add", "upstream",
"https://gitlab.com/postmarketOS/pmaports.git"], False)
run_git(["fetch", "-q", "upstream"])
def commit_message_has_string(needle):
return needle in run_git(["show", "-s", "--format=full", "HEAD"])
def run_pmbootstrap(parameters):
""" Run pmbootstrap with the pmaports dir as --aports """
cmd = ["pmbootstrap", "--aports", get_pmaports_dir()] + parameters
process = subprocess.Popen(cmd)
process.communicate()
if process.returncode != 0:
print("** Test failed")
exit(1)
def get_changed_files():
""" Get all changed files and print them, as well as the branch and the
commit that was used for the diff.
:returns: list of changed files
"""
commit_head = run_git(["rev-parse", "HEAD"])[:-1]
commit_upstream_master = run_git(["rev-parse", "upstream/master"])[:-1]
print("commit HEAD: " + commit_head)
print("commit upstream/master: " + commit_upstream_master)
# Check if we are latest upstream/master
if commit_head == commit_upstream_master:
# then compare with previous commit
commit = "HEAD~1"
else:
# otherwise compare with latest common ancestor
commit = run_git(["merge-base", "upstream/master", "HEAD"])[:-1]
print("comparing HEAD with: " + commit)
# Changed files
ret = run_git(["diff", "--name-only", commit, "HEAD"]).splitlines()
print("changed file(s):")
for file in ret:
message = " " + file
if not os.path.exists(file):
message += " (deleted)"
print(message)
return ret
def get_changed_packages_sanity_check(count):
for mark in ["[ci:ignore-count]", "[ci:skip-build]"]:
if commit_message_has_string(mark):
print("NOTE: package count sanity check skipped (" + mark + ").")
return
if count <= 10:
return
print()
print("ERROR: Too many packages have changed!")
print()
print("This is a sanity check, so we don't end up building packages that")
print("have not been modified. CI won't run for more than one hour")
print("anyway.")
print()
print("Your options:")
print("a) If you *did not* modify everything listed above, then rebase")
print(" your branch on the official postmarketOS/pmaports.git master")
print(" branch. Feel free to ask in the chat for help if you need any.")
print("b) If you *did* modify all these packages, and you assume that")
print(" they will build within one hour: skip this sanity check by")
print(" adding '[ci:ignore-count]' to the commit message (then force")
print(" push).")
print("c) If you *did* modify all these packages, and you are sure that")
print(" they won't build in time, please add '[ci:skip-build]' to the")
print(" commit message (then force push). Make sure that all packages")
print(" build with 'pmbootstrap build --strict'!")
print()
print("Thank you and sorry for the inconvenience.")
sys.exit(1)
def get_changed_packages():
files = get_changed_files()
ret = set()
for file in files:
# Skip files:
# * in the root dir of pmaports (e.g. README.md)
# * path beginning with a dot (e.g. .gitlab-ci/)
# * non-existing files (deleted packages)
if "/" not in file or file.startswith(".") or not os.path.exists(file):
continue
# Add to the ret set (removes duplicated automatically)
ret.add(file.split("/")[1])
return ret
def check_build(packages, verify_only=False):
# Initialize build environment with less logging
run_pmbootstrap(["build_init"])
if verify_only:
run_pmbootstrap(["--details-to-stdout", "checksum", "--verify"] +
list(packages))
else:
run_pmbootstrap(["--details-to-stdout", "build", "--strict",
"--force"] + list(packages))
+15 -2
View File
@@ -1,5 +1,5 @@
#!/bin/sh -e
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# usage: install_pmbootstrap.sh [ADDITIONAL_PACKAGE, ...]
@@ -32,5 +32,18 @@ mv pmbootstrap-* pmbootstrap
# Install to $PATH and init
ln -s /tmp/pmbootstrap/pmbootstrap.py /usr/local/bin/pmbootstrap
echo "Initializing pmbootstrap"
su pmos -c "yes '' | pmbootstrap -q --aports '$pmaports' init"
if ! su pmos -c "yes '' | pmbootstrap -q --aports '$pmaports' init"; then
echo "ERROR: pmbootstrap init failed!"
echo
echo "Most likely, this means that pmbootstrap requires a newer"
echo "pmaports version. Please rebase on the official pmaports.git"
echo "master branch and try again."
echo
echo "Let us know in the chat or issues if you have trouble with that"
echo "and we will be happy to help. Sorry for the inconvenience."
echo
echo "(If that does not help, click on 'Browse' in the 'Job artifacts'"
echo "next to this log output, and have a look at log.txt.)"
exit 1
fi
echo ""
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/sh -e
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
if [ -z "$1" ]; then
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/sh -e
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Require pmbootstrap
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
set -e
clang-format -i $(find . -name "*.c")
git diff > differences.patch
if [ -s differences.patch ]; then
echo "C-Code formatting check failed!"
echo "Please make sure, the code is formatted properly!"
echo "Run:"
echo ' clang-format -i $(find . -name "*.c")'
echo
cat differences.patch
echo
rm differences.patch
exit 1
else
echo "C-Code formatting check is sucessful!"
exit 0
fi
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/sh -e
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
set -e
@@ -1,10 +1,11 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import shutil
import sys
import os
from distutils.sysconfig import get_python_lib
def path_pmbootstrap():
@@ -23,6 +24,10 @@ def path_pmbootstrap():
if os.path.exists(dir + "/pmb/__init__.py"):
return dir
dir = get_python_lib()
if os.path.exists(dir + "/pmb/__init__.py"):
return dir
# Symlink not set up properly
print("ERROR: 'pmbootstrap' is not a symlink to pmbootstrap.py")
sys.exit(1)
-90
View File
@@ -1,90 +0,0 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import filecmp
import pytest
import sys
import os
import add_pmbootstrap_to_import_path
import pmb.aportgen
import pmb.config
import pmb.helpers.logging
import pmb.parse
@pytest.fixture
def args(request):
# Initialize args
sys.argv = ["pmbootstrap",
"--aports", os.path.dirname(__file__) + "/../..",
"--log", "$WORK/log_testsuite_pmaports.txt"
"chroot"]
args = pmb.parse.arguments()
# Initialize logging
pmb.helpers.logging.init(args)
request.addfinalizer(args.logfd.close)
return args
def test_aportgen(args, tmpdir):
# Fake aports folder in tmpdir
aports_real = args.aports
args.aports = str(tmpdir)
pmb.helpers.run.user(args, ["mkdir", "-p", str(tmpdir) + "/cross"])
# Create aportgen folder -> code path where it still exists
pmb.helpers.run.user(args, ["mkdir", "-p", args.work + "/aportgen"])
# Generate all valid packages (gcc twice -> different code path)
pkgnames = ["binutils-armhf", "musl-armhf", "busybox-static-armhf",
"gcc-armhf", "gcc-armhf"]
for pkgname in pkgnames:
pmb.aportgen.generate(args, pkgname)
path_new = args.aports + "/cross/" + pkgname + "/APKBUILD"
path_old = aports_real + "/cross/" + pkgname + "/APKBUILD"
assert os.path.exists(path_new)
assert filecmp.cmp(path_new, path_old, False)
def test_aportgen_invalid_generator(args):
with pytest.raises(ValueError) as e:
pmb.aportgen.generate(args, "pkgname-with-no-generator")
assert "No generator available" in str(e.value)
def test_aportgen_get_upstream_aport(args, monkeypatch):
# Fake pmb.parse.apkbuild()
def fake_apkbuild(*args, **kwargs):
return apkbuild
monkeypatch.setattr(pmb.parse, "apkbuild", fake_apkbuild)
# Fake pmb.parse.apkindex.package()
def fake_package(*args, **kwargs):
return package
monkeypatch.setattr(pmb.parse.apkindex, "package", fake_package)
# Equal version
func = pmb.aportgen.core.get_upstream_aport
upstream = "main/gcc"
upstream_full = args.work + "/cache_git/aports_upstream/" + upstream
apkbuild = {"pkgver": "2.0", "pkgrel": "0"}
package = {"version": "2.0-r0"}
assert func(args, upstream) == upstream_full
# APKBUILD < binary
apkbuild = {"pkgver": "1.0", "pkgrel": "0"}
package = {"version": "2.0-r0"}
with pytest.raises(RuntimeError) as e:
func(args, upstream)
assert str(e.value).startswith("You can update your local checkout with")
# APKBUILD > binary
apkbuild = {"pkgver": "3.0", "pkgrel": "0"}
package = {"version": "2.0-r0"}
with pytest.raises(RuntimeError) as e:
func(args, upstream)
assert str(e.value).startswith("You can force an update of your binary")
+26 -3
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import glob
@@ -27,6 +27,19 @@ def args(request):
return args
def deviceinfo_obsolete(info):
"""
Test for obsolete options used in the deviceinfo file. They must still be
defined in pmbootstrap's config/__init__.py.
"""
obsolete_options = ["weston_pixman_type"]
for option in obsolete_options:
if info[option]:
raise RuntimeError("option '" + option + "' is obsolete, please"
" remove it (reasons for removal are at"
" <https://postmarketos.org/deviceinfo>)")
def test_deviceinfo(args):
"""
Parse all deviceinfo files successfully and run checks on the parsed data.
@@ -38,8 +51,9 @@ def test_deviceinfo(args):
device = folder[len(args.aports):].split("-", 1)[1]
try:
# Check for successful deviceinfo parsing
# Successful deviceinfo parsing / obsolete options
info = pmb.parse.deviceinfo(args, device)
deviceinfo_obsolete(info)
# deviceinfo_name must start with manufacturer
name = info["name"]
@@ -83,6 +97,15 @@ def test_aports_device(args):
" subpackages now, see"
" <https://postmarketos.org/devicepkg>.")
# Architecture
device = apkbuild["pkgname"][len("device-"):]
deviceinfo = pmb.parse.deviceinfo(args, device)
if "".join(apkbuild["arch"]) != deviceinfo["arch"]:
raise RuntimeError("wrong architecture, please change to arch=\"" +
deviceinfo["arch"] + "\": " + path)
if "!archcheck" not in apkbuild["options"]:
raise RuntimeError("!archcheck missing in options= line: " + path)
def test_aports_device_kernel(args):
"""
@@ -92,7 +115,7 @@ def test_aports_device_kernel(args):
* Validate kernel subpackage names
"""
# Generate list of valid subpackages
valid_subpackages = ["downstream", "rpi", "rpi2"]
valid_subpackages = ["downstream", "rpi", "rpi2", "longts", "shortts"]
for path in glob.glob(args.aports + "/main/linux-postmarketos-*"):
suffix = os.path.basename(path)[len("linux-postmarketos-"):]
valid_subpackages.append(suffix)
@@ -1,7 +1,11 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
""" Make sure that components of frameworks (Qt, KDE, ...) have the same
version in all packages. We scan all packages, categorize them by URL
and then compare the versions of all packages in each category. """
import glob
import logging
import os
@@ -28,22 +32,25 @@ def args(request):
return args
def get_categorized_kde_packages(args):
def get_categorized_packages(args):
"""
Parse all aports in the kde folder, and categorize them.
Parse all aports and categorize them.
:returns: {"plasma": {"kwin": "5.13.3", ...},
"kde": {"kcrash": "5.48.0", ...},
"qt": {"qt5-qtbase": "5.12.0", ...},
"other": {"konsole": "1234", ...}}
"""
ret = {"plasma": {}, "kde": {}, "other": {}}
ret = {}
for path in glob.glob(args.aports + "/kde/*/APKBUILD"):
for path in glob.glob(args.aports + "/*/*/APKBUILD"):
# Parse APKBUILD
apkbuild = pmb.parse.apkbuild(args, path)
url = apkbuild["url"]
pkgname = apkbuild["pkgname"]
pkgver = apkbuild["pkgver"]
if pkgver == "9999":
pkgver = apkbuild["_pkgver"]
# Categorize by URL
category = "other"
@@ -51,18 +58,24 @@ def get_categorized_kde_packages(args):
category = "plasma"
elif "https://community.kde.org/Frameworks" in url:
category = "kde"
elif url in ["http://qt-project.org/",
"https://www.qt.io/developers/"]:
category = "qt"
# Save result
if category not in ret:
ret[category] = {}
ret[category][pkgname] = pkgver
return ret
def check_categories(categories):
"""
Make sure that all packages in one framework (kde, plasma) have the same
package version (and that there is at least one package in each category).
Make sure that all packages in one framework (kde, plasma, ...) have the
same package version (and that there is at least one package in each
category).
:param categories: see return of get_categorized_kde_packages()
:param categories: see return of get_categorized_packages()
:returns: True when the check passed, False otherwise
"""
ret = True
@@ -73,17 +86,20 @@ def check_categories(categories):
# Use the first package as reference and print a summary
if not reference:
logging.info("---")
logging.info("KDE package category: " + category)
logging.info("Packages (" + str(len(packages)) + "): " +
", ".join(sorted(packages.keys())))
reference = {"pkgname": pkgname, "pkgver": pkgver}
logging.info("Package category: " + category)
logging.info("Packages count: " + str(len(packages)))
# Category "other": done after printing the summary, no need to
# compare the package versions
# Category "other": done after printing the basic summary, no
# need to print each package or compare the package versions
if category == "other":
reference = True
break
# Print all packages
logging.info("Packages: " + ", ".join(sorted(packages.keys())))
# Print the reference and skip checking it against itself
reference = {"pkgname": pkgname, "pkgver": pkgver}
logging.info("Reference pkgver: " + pkgver + " (from '" +
pkgname + "')")
continue
@@ -101,10 +117,10 @@ def check_categories(categories):
return ret
def test_kde_versions(args):
def test_framework_versions(args):
"""
Make sure that KDE packages of the same framework have the same version.
Make sure that packages of the same framework have the same version.
"""
categories = get_categorized_kde_packages(args)
categories = get_categorized_packages(args)
if not check_categories(categories):
raise RuntimeError("KDE version check failed!")
raise RuntimeError("Framework version check failed!")
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
"""
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright 2018 Oliver Smith
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
@@ -53,6 +53,11 @@ def test_qt_versions(args):
if pkgver == "9999":
pkgver = apkbuild["_pkgver"]
# We had to add a few qt5 git packages for unity8 (!27), obviously we
# can't compare the version there.
if "_git" in pkgver:
continue
# Compare
if pkgver == pkgver_upstream:
continue
@@ -73,9 +78,10 @@ def test_aportgen_versions(args):
index = pmb.helpers.repo.alpine_apkindex_path(args, "main", "x86_64")
# Alpine packages and patterns for our derivatives
map = {"binutils": "binutils-*",
"busybox": "busybox-static-*",
# binutils: frozen at 2.31 for now, until #295 is resolved!
map = {"busybox": "busybox-static-*",
"gcc": "gcc-*",
"grub": "grub-efi-*",
"musl": "musl-*"}
# Iterate over Alpine packages
@@ -0,0 +1,90 @@
From a7bfe0a2832e66f3d732e4210b5d53c81cc7a85f Mon Sep 17 00:00:00 2001
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu, 27 Sep 2018 19:16:56 -0400
Subject: [PATCH] give up on gcc ilog2() constant optimizations
commit 474c90156c8dcc2fa815e6716cc9394d7930cb9c upstream.
gcc-7 has an "optimization" pass that completely screws up, and
generates the code expansion for the (impossible) case of calling
ilog2() with a zero constant, even when the code gcc compiles does not
actually have a zero constant.
And we try to generate a compile-time error for anybody doing ilog2() on
a constant where that doesn't make sense (be it zero or negative). So
now gcc7 will fail the build due to our sanity checking, because it
created that constant-zero case that didn't actually exist in the source
code.
There's a whole long discussion on the kernel mailing about how to work
around this gcc bug. The gcc people themselevs have discussed their
"feature" in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785
but it's all water under the bridge, because while it looked at one
point like it would be solved by the time gcc7 was released, that was
not to be.
So now we have to deal with this compiler braindamage.
And the only simple approach seems to be to just delete the code that
tries to warn about bad uses of ilog2().
So now "ilog2()" will just return 0 not just for the value 1, but for
any non-positive value too.
It's not like I can recall anybody having ever actually tried to use
this function on any invalid value, but maybe the sanity check just
meant that such code never made it out in public.
[js] no tools/include/linux/log2.h copy of that yet
Reported-by: Laura Abbott <labbott@redhat.com>
Cc: John Stultz <john.stultz@linaro.org>,
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
include/linux/log2.h | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/include/linux/log2.h b/include/linux/log2.h
index fd7ff3d91..f38fae23b 100644
--- a/include/linux/log2.h
+++ b/include/linux/log2.h
@@ -15,12 +15,6 @@
#include <linux/types.h>
#include <linux/bitops.h>
-/*
- * deal with unrepresentable constant logarithms
- */
-extern __attribute__((const, noreturn))
-int ____ilog2_NaN(void);
-
/*
* non-constant log of base 2 calculators
* - the arch may override these in asm/bitops.h if they can be implemented
@@ -85,7 +79,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n)
#define ilog2(n) \
( \
__builtin_constant_p(n) ? ( \
- (n) < 1 ? ____ilog2_NaN() : \
+ (n) < 2 ? 0 : \
(n) & (1ULL << 63) ? 63 : \
(n) & (1ULL << 62) ? 62 : \
(n) & (1ULL << 61) ? 61 : \
@@ -148,10 +142,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n)
(n) & (1ULL << 4) ? 4 : \
(n) & (1ULL << 3) ? 3 : \
(n) & (1ULL << 2) ? 2 : \
- (n) & (1ULL << 1) ? 1 : \
- (n) & (1ULL << 0) ? 0 : \
- ____ilog2_NaN() \
- ) : \
+ 1 ) : \
(sizeof(n) <= 4) ? \
__ilog2_u32(n) : \
__ilog2_u64(n) \
@@ -0,0 +1,39 @@
From 8c8187d41b99acd4f2078d0fff6807e0eeb47407 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Thu, 26 Jul 2018 10:13:23 +0200
Subject: [PATCH] ARM: fix put_user() for gcc-8
Building kernels before linux-4.7 with gcc-8 results in many build failures
when gcc triggers a check that was meant to catch broken compilers:
/tmp/ccCGMQmS.s:648: Error: .err encountered
According to the discussion in the gcc bugzilla, a local "register
asm()" variable is still supposed to be the correct way to force an
inline assembly to use a particular register, but marking it 'const'
lets the compiler do optimizations that break that, i.e the compiler is
free to treat the variable as either 'const' or 'register' in that case.
Upstream commit 9f73bd8bb445 ("ARM: uaccess: remove put_user() code
duplication") fixed this problem in linux-4.8 as part of a larger change,
but seems a little too big to be backported to 4.4.
Let's take the simplest fix and change only the one broken line in the
same way as newer kernels.
Suggested-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86673
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/include/asm/uaccess.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index b04850fdeb5..f8ad54b24ac 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -162 +162 @@ extern int __put_user_8(void *, unsigned long long);
- register const typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
@@ -0,0 +1,67 @@
From 51b97e354ba9fce1890cf38ecc754aa49677fc89 Mon Sep 17 00:00:00 2001
From: "Kirill A. Shutemov" <kirill@shutemov.name>
Date: Mon, 20 Oct 2014 12:23:12 +0300
Subject: kernel: use the gnu89 standard explicitly
From: "Kirill A. Shutemov" <kirill@shutemov.name>
commit 51b97e354ba9fce1890cf38ecc754aa49677fc89 upstream.
Sasha Levin reports:
"gcc5 changes the default standard to c11, which makes kernel build
unhappy
Explicitly define the kernel standard to be gnu89 which should keep
everything working exactly like it was before gcc5"
There are multiple small issues with the new default, but the biggest
issue seems to be that the old - and very useful - GNU extension to
allow a cast in front of an initializer has gone away.
Patch updated by Kirill:
"I'm pretty sure all gcc versions you can build kernel with supports
-std=gnu89. cc-option is redunrant.
We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me"
Note by Andrew Pinski:
"Yes it was reported and both problems relating to this extension has
been added to gnu99 and gnu11. Though there are other issues with the
kernel dealing with extern inline have different semantics between
gnu89 and gnu99/11"
End result: we may be able to move up to a newer stdc model eventually,
but right now the newer models have some annoying deficiencies, so the
traditional "gnu89" model ends up being the preferred one.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Singed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
Makefile | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/Makefile
+++ b/Makefile
@@ -241,7 +241,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
HOSTCC = gcc
HOSTCXX = g++
-HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
+HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
HOSTCXXFLAGS = -O2
# Decide whether to build built-in, modular, or both.
@@ -373,7 +373,9 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstric
-fno-strict-aliasing -fno-common \
-Werror-implicit-function-declaration \
-Wno-format-security \
- -fno-delete-null-pointer-checks
+ -fno-delete-null-pointer-checks \
+ -std=gnu89
+
KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS := -D__ASSEMBLY__
+31
View File
@@ -0,0 +1,31 @@
#!/bin/sh -e
# Copyright 2019 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
# Config: pmbootstrap tag (or branch)
if [ "$1" != "" ]; then
tag="$1"
else
tag="master"
fi
# Get download URL and pmaports path
url="https://gitlab.com/postmarketOS/pmbootstrap/-/archive/$tag/pmbootstrap-$tag.tar.bz2"
pmaports="$(cd $(dirname $0)/..; pwd -P)"
# Set up binfmt_misc
echo "Setting-up binfmt_misc"
sudo mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
# Download pmbootstrap (to /tmp/pmbootstrap)
echo "Downloading pmbootstrap ($tag): $url"
cd /tmp
wget -q -O "pmb.tar.bz2" "$url"
tar -xf "pmb.tar.bz2"
mv pmbootstrap-* pmbootstrap
# Install to $PATH and init
sudo ln -s /tmp/pmbootstrap/pmbootstrap.py /usr/bin/pmbootstrap
echo "Initializing pmbootstrap with aports at '$pmaports'"
yes '' | pmbootstrap -q --aports "$pmaports" init
+74
View File
@@ -0,0 +1,74 @@
#!/usr/bin/env python3
import os
import argparse
import json
import requests
commit_default = os.environ['COMMIT'] if 'COMMIT' in os.environ else None
parser = argparse.ArgumentParser(description='tool to send data to build.postmarketos.org')
parser.add_argument('--token', default='~/.pmos_token', help='secret token to authenticate to build.postmarketos.org')
parser.add_argument('--host', default='https://build.postmarketos.org', help='base url for the submit request')
parser.add_argument('--commit', default=commit_default, help='value for the X-Commit header')
parser.add_argument('--arch', default='x86_64', help='value for the X-Arch header')
parser.add_argument('--id', help='id of the job in the queue, value for the X-Id header')
parser.add_argument('--json', action='store_true', help='datafile is a json file, do extra sanity checks')
parser.add_argument('--verbose', '-v', action='store_true', help='show more debug info')
parser.add_argument('endpoint', help='endpoint name on the API')
parser.add_argument('datafile', help='file containing the data to be submitted', nargs='+')
args = parser.parse_args()
if args.commit is None:
print('You need to either add COMMIT to the environment or specify --commit')
exit(1)
if args.verbose:
print('Environment:')
print(os.environ)
with open(os.path.expanduser(args.token), encoding="utf-8") as handle:
secret = handle.read().strip()
url = '{}/api/{}'.format(args.host, args.endpoint)
if args.json:
if len(args.datafile) > 1:
print("json mode doesn't support multiple input files")
exit(1)
# Send contents of file as HTTP POST with json payload
with open(args.datafile[0], encoding="utf-8") as handle:
data = handle.read()
data = json.loads(data)
print('Sending json data to {}'.format(url))
response = requests.post(url, json=data, headers={
'X-Secret': secret,
'X-Commit': args.commit,
'X-Arch': args.arch
})
else:
files = []
for file in args.datafile:
filename = os.path.basename(file)
# Send contents of file as HTTP POST with multipart/formdata payload
files.append(('file[]', (filename, open(file, 'rb'), 'application/octet-stream')))
print('Uploading {} to {}'.format(filename, url))
response = requests.post(url, files=files, headers={
'X-Secret': secret,
'X-Commit': args.commit,
'X-Arch': args.arch,
'X-Id': args.id
})
if response.status_code > 399:
print('Error occurred:')
print(response.content.decode())
exit(1)
else:
print(response.content.decode())
-39
View File
@@ -1,39 +0,0 @@
pkgname=android-libcutils
pkgver=7.0.0_r34
pkgrel=0
pkgdesc="Android low-level utility library"
url="https://github.com/android/platform_system_core"
arch="all"
license="APACHE2"
depends=""
makedepends="bsd-compat-headers android-liblog android-liblog-dev"
options="!check"
source="
android_platform_system_core-$pkgver.tar.gz::https://github.com/android/platform_system_core/archive/android-${pkgver}.tar.gz
Makefile"
_lib="cutils"
subpackages="$pkgname-dev"
builddir="$srcdir"/platform_system_core-android-$pkgver/lib${_lib}
prepare() {
cp "$srcdir"/Makefile "$builddir"
}
build() {
cd "$builddir"
make
}
package() {
# Library
install -Dm644 "${builddir}/lib${_lib}.so" \
"${pkgdir}/usr/lib/android/lib${_lib}.so"
# Header files
mkdir -p "${pkgdir}/usr/include/android/"
cp -r "${srcdir}/platform_system_core-android-${pkgver}/include/${_lib}" \
"${pkgdir}/usr/include/android/"
}
sha512sums="f84d31db61f86c73b8aecbaf788d43b0a2cc984121fd7244a2f7ca2a2a751437b8708acdd27cb86a260162e866c40f6015f14d52beb3a85e9ae2efd6f44b73f3 android_platform_system_core-7.0.0_r34.tar.gz
2aeab8d7267508a7c570a57f771796a9ed8cd7747d3dd33a84535c66331a7f6cf147919e8859f74de27a13d760af7de9f7e69aa688515451a21320603c4c4f4b Makefile"
-62
View File
@@ -1,62 +0,0 @@
LD := gcc
LDFLAGS := -L/usr/lib/android/ -shared
LIBS := -l:liblog.so
CXX := g++
CXXFLAGS := -std=c++14 -Wall -I../include -fPIC
CC := gcc
# char16_t workaround: https://stackoverflow.com/a/22369822
CFLAGS := -Wall -I../include -Dchar16_t=uint16_t -fPIC
# From Android.mk: libcutils_common_sources, libcutils_nonwindows_sources
SRC_C := \
atomic.c \
config_utils.c \
fs_config.c \
canned_fs_config.c \
hashmap.c \
iosched_policy.c \
load_file.c \
native_handle.c \
open_memstream.c \
process_name.c \
record_stream.c \
sched_policy.c \
strdup16to8.c \
strdup8to16.c \
strlcpy.c \
threads.c \
fs.c \
multiuser.c \
socket_inaddr_any_server_unix.c \
socket_local_client_unix.c \
socket_local_server_unix.c \
socket_loopback_client_unix.c \
socket_loopback_server_unix.c \
socket_network_client_unix.c \
str_parms.c
SRC_CPP := \
sockets_unix.cpp \
sockets.cpp
OBJECTS := $(SRC_C:%.c=%.c.o) $(SRC_CPP:%.cpp=%.cpp.o)
all: libcutils.so
%.c.o: %.c
$(info CC $<)
@$(CC) -c -o $@ $< $(CFLAGS)
%.cpp.o: %.cpp
$(info CC $<)
@$(CXX) -c -o $@ $< $(CXXFLAGS)
libcutils.so: $(OBJECTS)
$(info LD $@)
@$(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
.PHONY: clean
clean:
rm -v libcutils.so *.o
-39
View File
@@ -1,39 +0,0 @@
pkgname=android-liblog
pkgver=7.0.0_r34
pkgrel=0
pkgdesc="Android low-level logging library"
url="https://github.com/android/platform_system_core"
arch="all"
license="APACHE2"
depends=""
makedepends="bsd-compat-headers"
options="!check"
source="
android_platform_system_core-$pkgver.tar.gz::https://github.com/android/platform_system_core/archive/android-${pkgver}.tar.gz
Makefile"
_lib="log"
subpackages="$pkgname-dev"
builddir="$srcdir"/platform_system_core-android-$pkgver/lib${_lib}
prepare() {
cp "$srcdir"/Makefile "$builddir"
}
build() {
cd "$builddir"
make
}
package() {
# Library
install -Dm644 "${builddir}/lib${_lib}.so" \
"${pkgdir}/usr/lib/android/lib${_lib}.so"
# Header files
mkdir -p "${pkgdir}/usr/include/android/"
cp -r "${srcdir}/platform_system_core-android-${pkgver}/include/${_lib}" \
"${pkgdir}/usr/include/android/"
}
sha512sums="f84d31db61f86c73b8aecbaf788d43b0a2cc984121fd7244a2f7ca2a2a751437b8708acdd27cb86a260162e866c40f6015f14d52beb3a85e9ae2efd6f44b73f3 android_platform_system_core-7.0.0_r34.tar.gz
967055ff34e1aa66cb76de0374be24810fab8a11b56a11c33fac0a7914def39884b1b6428b4deda5aa13a9f323d556479f25fa351220f2909c9fbfd72ca31a4b Makefile"
-31
View File
@@ -1,31 +0,0 @@
# From Android.mk: liblog_sources, liblog_host_sources, LOCAL_SRC_FILES_linux
SRC_C := \
config_write.c \
event_tag_map.c \
fake_log_device.c \
fake_writer.c \
log_event_list.c \
log_event_write.c \
logger_lock.c \
logger_name.c \
logger_write.c
OBJECTS := $(SRC_C:%.c=%.o)
CC := gcc
LD := gcc
LDFLAGS := -shared
CFLAGS := -Wall -I../include -fPIC
all: liblog.so
%.o: %.c
$(info CC $<)
@$(CC) -c -o $@ $< $(CFLAGS)
liblog.so: $(OBJECTS)
$(info LD $@)
@$(LD) -o $@ $^ $(LDFLAGS)
.PHONY: clean
clean:
rm -v *.o liblog.so
@@ -1,24 +0,0 @@
diff --git a/include/hardware_legacy/power.h b/include/hardware_legacy/power.h
new file mode 100644
index 0000000..5aeb933
--- /dev/null
+++ b/include/hardware_legacy/power.h
@@ -0,0 +1,18 @@
+#pragma once
+// This is a stub for wake locks, so we don't need to compile
+// android_hardware_libhardware_legacy for now.
+
+#include <stdint.h>
+
+enum {
+ PARTIAL_WAKE_LOCK = 1,
+ FULL_WAKE_LOCK = 2
+};
+
+int acquire_wake_lock(int lock, const char* id) {
+ // STUB
+};
+
+int release_wake_lock(const char* id) {
+ // STUB
+};
-54
View File
@@ -1,54 +0,0 @@
# NOTE: 8.x has a more complicated build process:
# https://source.android.com/devices/architecture/hidl-cpp
pkgname=android-ril
pkgver=7.0.0_r34
pkgrel=0
pkgdesc="Radio Interface Layer Daemon"
url="https://github.com/android/platform_hardware_ril"
arch="all"
license="APACHE2"
depends=""
makedepends="nanopb nanopb-dev android-libcutils-dev"
options="!check"
# subpackages="librilutils libril"
source="
$pkgname-$pkgver.tar.gz::https://github.com/android/platform_hardware_ril/archive/android-${pkgver}.tar.gz
rild.initd
Makefile.libril
Makefile.librilutils
Makefile.rild
01_wake_lock_stub.patch
"
builddir="$srcdir"/platform_hardware_ril-android-$pkgver
prepare() {
default_prepare
for i in librilutils libril rild; do
cp "$srcdir"/Makefile.$i "$builddir"/$i/Makefile
done
}
build() {
for i in librilutils libril rild; do
msg "Building $i"
cd "$builddir/$i"
make
done
}
package() {
cd "$builddir"
# OpenRC service
install -Dm755 "$srcdir/rild.initd" "$pkgdir/etc/init.d/rild"
}
sha512sums="7685958bbe628c761f568e0bd85f50ec6f7524945142c870aa1ad9ee5afc7e9db526b6aaa41fad71b584a7a048e1947c73ee8d61d588b0e5da5c8b56a30cc961 android-ril-7.0.0_r34.tar.gz
f6b01eaf37412bfb5748a184f84b619a254d4a0bffc51613f74aef058fcea3f55d2e504ddacdf22463e2fca0ce71edc89be4e7de42fcc3761e2de8fc3a7316d5 rild.initd
e85d424293b2bedc7b144cb29e8a0131b6ee385ec1c688a80b40d6836a93c4886b184c46880d74266f9c0b554be2b3da6c3836f3a6d05703f34c356ef284e970 Makefile.libril
7a8b8da2aec6d91459c1641cf75f7a710b661814a4d447c58a361d67832d5237bbc6945be9a375a286b3137ef6bcd942689c1e0cc8c270b9fff91c2ca0ad1da7 Makefile.librilutils
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e Makefile.rild
5d0d7e79fc0454bf627917a8c9acd801760145c320a082933619f3eeb3f30bd832db7cab7d68f86e3b4217373ee6919365449af78675aea5005c53bb80594c6a 01_wake_lock_stub.patch"
-21
View File
@@ -1,21 +0,0 @@
CXX := g++
CXXFLAGS := -std=c++14 -Wall -g -I../include -I/usr/include/android
LIBS :=
SOURCES := ${wildcard *.cpp}
OBJECTS := $(SOURCES:%.cpp=%.o)
all: libril.so
%.o: %.cpp
@echo CC $<
@$(CXX) -c -o $@ $< $(CXXFLAGS)
libril.so: $(OBJECTS)
@echo LD $@
@$(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
.PHONY: clean
clean:
-rm -fv *.o libril.so
-26
View File
@@ -1,26 +0,0 @@
CC := gcc
CFLAGS := -Wall -I../include/ -I. -fPIC
PBSRC := ${wildcard proto/*.proto}
SRC := ${wildcard *.c} $(PBSRC:%.proto=%.pb-c.c)
OBJ := $(SRC:%.c=%.o)
all: librilutils.so.1
%.pb-c.c: %.proto
$(info PROTO $<)
@protoc --nanopb_out=. $<
%.o: %.c
$(info CC $<)
@$(CC) -c -o $@ $< $(CFLAGS)
librilutils.so.1: $(OBJ) $(PBOBJ)
$(info LD $@)
@$(CC) -shared -Wl,-soname,$@.so.1 -o $@.so.1 $^ $(CFLAGS)
.PHONY: clean
clean:
-rm -v *.o *.so proto/*.pb-c.*
View File
Whitespace-only changes.
-18
View File
@@ -1,18 +0,0 @@
#!/sbin/openrc-run
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Purpose License v2
depend() {
}
start() {
ebegin "Starting Radio Interface Layer"
start-stop-daemon --start --quiet --exec /usr/sbin/rild
eend $?
}
stop() {
ebegin "Stopping Radio Interface Layer"
start-stop-daemon --stop --quiet --exec /usr/sbin/rild
eend $?
}
-46
View File
@@ -1,46 +0,0 @@
pkgname=nanopb
pkgver=0.3.9
pkgrel=1
pkgdesc="Protocol Buffers with small code size"
url="https://jpa.kapsi.fi/nanopb"
arch="all"
license="MIT"
depends="py2-protobuf"
makedepends="cmake python2 protobuf"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/nanopb/nanopb/archive/${pkgver}.tar.gz"
options="!check"
builddir="$srcdir"/$pkgname-$pkgver
build() {
cd "$builddir"
cmake -DCMAKE_BUILD_TYPE=Release
make
}
package() {
cd "$builddir"
# Statically linked library
install -Dm644 libprotobuf-nanopb.a "$pkgdir"/usr/lib/libprotobuf-nanopb.a
# Header files
for i in *.h; do
install -Dm644 "$i" "$pkgdir/usr/include/$i"
done
# Protobuf plugin
for i in nanopb_generator.py protoc-gen-nanopb; do
install -Dm755 "generator/$i" "$pkgdir/usr/bin/$i"
done
# Protocol definitions for generator
make -C generator/proto
for i in __init__.py nanopb_pb2.py plugin_pb2.py; do
echo "installing $i"
install -Dm755 "generator/proto/$i" "$pkgdir/usr/lib/python2.7/proto/$i"
done
}
sha512sums="1fa18d69ebfba2a58214beebd31fbbdd1edd71a19978754288adc09be6d5782feeb7bab2916448add2ab5bf7072d377101c7441b3e74619339dc545df3a73275 nanopb-0.3.9.tar.gz"
+2 -2
View File
@@ -6,7 +6,7 @@
# that).
pkgname=arch-bin-masquerade
pkgver=1
pkgver=2
pkgrel=0
pkgdesc="Wrappers for ccache + distcc (native and foreign chroots)"
url="https://postmarketOS.org"
@@ -16,7 +16,7 @@ options="!check !tracedeps"
package() {
# Architectures and binaries
_archs="x86_64 armhf aarch64"
_archs="x86_64 armhf armv7 aarch64"
_bins="c++ cc cpp g++ gcc"
# Iterate over architectures
+29 -23
View File
@@ -5,17 +5,20 @@
pkgname="binutils-aarch64"
pkgver=2.31.1
pkgrel=0
pkgrel=2
pkgdesc="Tools necessary to build programs for aarch64 targets"
url="https://www.gnu.org/software/binutils/"
depends=""
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison"
arch="armhf x86_64 x86"
arch="armhf armv7 x86_64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
x86-Properly-add-X86_ISA_1_NEEDED-property.patch
binutils-ld-fix-static-linking.patch
gold-mips.patch
"
@@ -32,34 +35,37 @@ fi
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec aarch64)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
--with-lib-path=/usr/lib \
--prefix=/usr \
--with-sysroot=/usr/$_target \
--enable-ld=default \
--enable-gold=yes \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-werror \
--disable-nls
make
_target="$(arch_to_hostspec aarch64)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
--with-lib-path=/usr/lib \
--prefix=/usr \
--with-sysroot=/usr/$_target \
--enable-ld=default \
--enable-gold=yes \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-werror \
--disable-nls
make
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
rm -rf "$pkgdir"/usr/share
# remove man, info folders
rm -rf "$pkgdir"/usr/share
}
sha512sums="b42954e6f49a0adcd2676bdd77dfb59bfc25cec8184b007521d1e2b1d5d0593b58639e3d9448d5a40fe024c3cea386a37743627d6bb16d502f52a4a32b9573bd binutils-2.31.1.tar.bz2
d95fd77e1c2c4670a2a11979d6811b358ba0f067b917b33d241eca20cfe66553f6a6fccc5ec26d8d29045e487cb74389fbf86426f80cf81df95608835a566cfc x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
ce5d3c935057d624c1ce75722e7b5e4583812d46797edce8c381a94b2643f44f7bd0165e7e9b8e358955f4d979074ee487598efbf24389a4013681f99ff7c595 x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
1878bed194529afb2430af21ba9712d6819c5fdfdc5c8db652175bf86d0a0c710ac2bd3ec728bf874887301bd187d91bf60a374c47850c7bd2eafbf6653d74d8 x86-Properly-add-X86_ISA_1_NEEDED-property.patch
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
@@ -1,93 +0,0 @@
From d66deb71f1537e2e30dccdfda22eed5d46ec47eb Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Wed, 14 Mar 2018 22:09:33 +1030
Subject: [PATCH] PowerPC64 debian bug 886264, out-of-line save/restore
functions
This calculation in relocate_section
if (stub_entry->stub_type == ppc_stub_save_res)
relocation += (stub_sec->output_offset
+ stub_sec->output_section->vma
+ stub_sec->size - htab->sfpr->size
- htab->sfpr->output_offset
- htab->sfpr->output_section->vma);
to adjust from the original out-of-line save/restore function address
in sfpr to a copy at the end of stub_sec goes wrong when stub_sec is
padded, because the copy is no longer at the end of stub_sec. The
solution is to pad before copying sfpr, so the copy is always at the
end of stub_sec.
* elf64-ppc.c (sfpr_define): Adjust for stub_sec size having
sfpr size added before defining alias symbols.
(ppc64_elf_build_stubs): Add stub section padding before
copying sfpr contents and defining save/restore alias symbols.
(cherry picked from commit 7dda8d3cf3b089bb7e03c4cdbec827fc6a188c88)
---
bfd/ChangeLog | 9 +++++++++
bfd/elf64-ppc.c | 33 ++++++++++++++++++---------------
2 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 6fcdff0..039294f 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -6645,7 +6645,7 @@ sfpr_define (struct bfd_link_info *info,
{
s->root.type = bfd_link_hash_defined;
s->root.u.def.section = stub_sec;
- s->root.u.def.value = (stub_sec->size
+ s->root.u.def.value = (stub_sec->size - htab->sfpr->size
+ h->elf.root.u.def.value);
s->ref_regular = 1;
s->def_regular = 1;
@@ -13232,20 +13232,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
for (group = htab->group; group != NULL; group = group->next)
if (group->needs_save_res)
- {
- stub_sec = group->stub_sec;
- memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents,
- htab->sfpr->size);
- if (htab->params->emit_stub_syms)
- {
- unsigned int i;
-
- for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
- if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
- return FALSE;
- }
- stub_sec->size += htab->sfpr->size;
- }
+ group->stub_sec->size += htab->sfpr->size;
if (htab->relbrlt != NULL)
htab->relbrlt->reloc_count = 0;
@@ -13259,6 +13246,22 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
}
for (group = htab->group; group != NULL; group = group->next)
+ if (group->needs_save_res)
+ {
+ stub_sec = group->stub_sec;
+ memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size,
+ htab->sfpr->contents, htab->sfpr->size);
+ if (htab->params->emit_stub_syms)
+ {
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
+ if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
+ return FALSE;
+ }
+ }
+
+ for (group = htab->group; group != NULL; group = group->next)
if ((stub_sec = group->stub_sec) != NULL)
{
stub_sec_count += 1;
--
2.9.3
@@ -0,0 +1,567 @@
From 6737a6b34f4823deb7142f27b4074831a37ac1e1 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Fri, 20 Jul 2018 09:18:47 -0700
Subject: [PATCH] x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed
When -z separate-code, which is enabled by default for Linux/x86, is
used to create executable, ld won't place any data in the code-only
PT_LOAD segment. If there are no data sections placed before the
code-only PT_LOAD segment, the program headers won't be mapped into
any PT_LOAD segment. When the executable tries to access it (based
on the program header address passed in AT_PHDR), it will lead to
segfault. This patch inserts a GNU_PROPERTY_X86_ISA_1_USED note if
there may be no data sections before the text section so that the
first PT_LOAD segment won't be code-only and will contain the program
header.
Testcases are adjusted to either pass "-z noseparate-code" to ld or
discard the .note.gnu.property section. A Linux/x86 run-time test is
added.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
separate code program header is needed, make sure that the first
read-only PT_LOAD segment has no code by adding a
GNU_PROPERTY_X86_ISA_1_USED note.
ld/
PR ld/23428
* testsuite/ld-elf/linux-x86.S: New file.
* testsuite/ld-elf/linux-x86.exp: Likewise.
* testsuite/ld-elf/pr23428.c: Likewise.
* testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
for Linux/x86 targets.
* testsuite/ld-i386/abs-iamcu.d: Likewise.
* testsuite/ld-i386/abs.d: Likewise.
* testsuite/ld-i386/pr12718.d: Likewise.
* testsuite/ld-i386/pr12921.d: Likewise.
* testsuite/ld-x86-64/abs-k1om.d: Likewise.
* testsuite/ld-x86-64/abs-l1om.d: Likewise.
* testsuite/ld-x86-64/abs.d: Likewise.
* testsuite/ld-x86-64/pr12718.d: Likewise.
* testsuite/ld-x86-64/pr12921.d: Likewise.
* testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
section.
* testsuite/ld-scripts/print-memory-usage.t: Likewise.
* testsuite/ld-scripts/size-2.t: Likewise.
* testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld
to create executable if language is "asm".
(cherry picked from commit 241e64e3b42cd9eba514b8e0ad2ef39a337f10a5)
---
bfd/ChangeLog | 8 ++++
bfd/elfxx-x86.c | 60 +++++++++++++++++++-------
ld/ChangeLog | 24 +++++++++++
ld/testsuite/ld-elf/linux-x86.S | 63 ++++++++++++++++++++++++++++
ld/testsuite/ld-elf/linux-x86.exp | 46 ++++++++++++++++++++
ld/testsuite/ld-elf/pr23428.c | 43 +++++++++++++++++++
ld/testsuite/ld-elf/sec64k.exp | 2 +
ld/testsuite/ld-i386/abs-iamcu.d | 2 +-
ld/testsuite/ld-i386/abs.d | 2 +-
ld/testsuite/ld-i386/pr12718.d | 2 +-
ld/testsuite/ld-i386/pr12921.d | 2 +-
ld/testsuite/ld-linkonce/zeroeh.ld | 1 +
ld/testsuite/ld-scripts/print-memory-usage.t | 2 +
ld/testsuite/ld-scripts/size-2.t | 1 +
ld/testsuite/ld-x86-64/abs-k1om.d | 2 +-
ld/testsuite/ld-x86-64/abs-l1om.d | 2 +-
ld/testsuite/ld-x86-64/abs.d | 2 +-
ld/testsuite/ld-x86-64/pr12718.d | 2 +-
ld/testsuite/ld-x86-64/pr12921.d | 2 +-
ld/testsuite/lib/ld-lib.exp | 5 ++-
20 files changed, 248 insertions(+), 25 deletions(-)
create mode 100644 ld/testsuite/ld-elf/linux-x86.S
create mode 100644 ld/testsuite/ld-elf/linux-x86.exp
create mode 100644 ld/testsuite/ld-elf/pr23428.c
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c1174a..d3831b7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
+ separate code program header is needed, make sure that the first
+ read-only PT_LOAD segment has no code by adding a
+ GNU_PROPERTY_X86_ISA_1_USED note.
+
2018-07-18 Nick Clifton <nickc@redhat.com>
* development.sh: Set to true.
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index a2497aa..2e4ff88 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2524,6 +2524,7 @@ _bfd_x86_elf_link_setup_gnu_properties
const struct elf_backend_data *bed;
unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
unsigned int got_align;
+ bfd_boolean has_text = FALSE;
features = 0;
if (info->ibt)
@@ -2538,24 +2539,59 @@ _bfd_x86_elf_link_setup_gnu_properties
if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
&& bfd_count_sections (pbfd) != 0)
{
+ if (!has_text)
+ {
+ /* Check if there is no non-empty text section. */
+ sec = bfd_get_section_by_name (pbfd, ".text");
+ if (sec != NULL && sec->size != 0)
+ has_text = TRUE;
+ }
+
ebfd = pbfd;
if (elf_properties (pbfd) != NULL)
break;
}
- if (ebfd != NULL && features)
+ bed = get_elf_backend_data (info->output_bfd);
+
+ htab = elf_x86_hash_table (info, bed->target_id);
+ if (htab == NULL)
+ return pbfd;
+
+ if (ebfd != NULL)
{
- /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
- GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
- prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_FEATURE_1_AND,
- 4);
- prop->u.number |= features;
- prop->pr_kind = property_number;
+ prop = NULL;
+ if (features)
+ {
+ /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
+ GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_FEATURE_1_AND,
+ 4);
+ prop->u.number |= features;
+ prop->pr_kind = property_number;
+ }
+ else if (has_text
+ && elf_properties (ebfd) == NULL
+ && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
+ && !htab->elf.dynamic_sections_created
+ && !info->traditional_format
+ && (info->output_bfd->flags & D_PAGED) != 0
+ && info->separate_code)
+ {
+ /* If the separate code program header is needed, make sure
+ that the first read-only PT_LOAD segment has no code by
+ adding a GNU_PROPERTY_X86_ISA_1_USED note. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_USED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+ }
/* Create the GNU property note section if needed. */
- if (pbfd == NULL)
+ if (prop != NULL && pbfd == NULL)
{
sec = bfd_make_section_with_flags (ebfd,
NOTE_GNU_PROPERTY_SECTION_NAME,
@@ -2581,12 +2617,6 @@ error_alignment:
pbfd = _bfd_elf_link_setup_gnu_properties (info);
- bed = get_elf_backend_data (info->output_bfd);
-
- htab = elf_x86_hash_table (info, bed->target_id);
- if (htab == NULL)
- return pbfd;
-
htab->r_info = init_table->r_info;
htab->r_sym = init_table->r_sym;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c07e442..cfadbd4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,27 @@
+2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * testsuite/ld-elf/linux-x86.S: New file.
+ * testsuite/ld-elf/linux-x86.exp: Likewise.
+ * testsuite/ld-elf/pr23428.c: Likewise.
+ * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
+ for Linux/x86 targets.
+ * testsuite/ld-i386/abs-iamcu.d: Likewise.
+ * testsuite/ld-i386/abs.d: Likewise.
+ * testsuite/ld-i386/pr12718.d: Likewise.
+ * testsuite/ld-i386/pr12921.d: Likewise.
+ * testsuite/ld-x86-64/abs-k1om.d: Likewise.
+ * testsuite/ld-x86-64/abs-l1om.d: Likewise.
+ * testsuite/ld-x86-64/abs.d: Likewise.
+ * testsuite/ld-x86-64/pr12718.d: Likewise.
+ * testsuite/ld-x86-64/pr12921.d: Likewise.
+ * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
+ section.
+ * testsuite/ld-scripts/print-memory-usage.t: Likewise.
+ * testsuite/ld-scripts/size-2.t: Likewise.
+ * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld to
+ create executable if language is "asm".
+
2018-07-18 Nick Clifton <nickc@redhat.com>
2.31.1 Release point.
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
new file mode 100644
index 0000000..bdf40c6
--- /dev/null
+++ b/ld/testsuite/ld-elf/linux-x86.S
@@ -0,0 +1,63 @@
+ .text
+ .globl _start
+ .type _start,@function
+ .p2align 4
+_start:
+ xorl %ebp, %ebp
+#ifdef __LP64__
+ popq %rdi
+ movq %rsp, %rsi
+ andq $~15, %rsp
+#elif defined __x86_64__
+ mov (%rsp),%edi
+ addl $4,%esp
+ movl %esp, %esi
+ andl $~15, %esp
+#else
+ popl %esi
+ movl %esp, %ecx
+ andl $~15, %esp
+
+ subl $8,%esp
+ pushl %ecx
+ pushl %esi
+#endif
+
+ call main
+
+ hlt
+
+ .type syscall, @function
+ .globl syscall
+ .p2align 4
+syscall:
+#ifdef __x86_64__
+ movq %rdi, %rax /* Syscall number -> rax. */
+ movq %rsi, %rdi /* shift arg1 - arg5. */
+ movq %rdx, %rsi
+ movq %rcx, %rdx
+ movq %r8, %r10
+ movq %r9, %r8
+ movq 8(%rsp),%r9 /* arg6 is on the stack. */
+ syscall /* Do the system call. */
+#else
+ push %ebp
+ push %edi
+ push %esi
+ push %ebx
+ mov 0x2c(%esp),%ebp
+ mov 0x28(%esp),%edi
+ mov 0x24(%esp),%esi
+ mov 0x20(%esp),%edx
+ mov 0x1c(%esp),%ecx
+ mov 0x18(%esp),%ebx
+ mov 0x14(%esp),%eax
+ int $0x80
+ pop %ebx
+ pop %esi
+ pop %edi
+ pop %ebp
+#endif
+ ret /* Return to caller. */
+ .size syscall, .-syscall
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
new file mode 100644
index 0000000..36217c6
--- /dev/null
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -0,0 +1,46 @@
+# Expect script for simple native Linux/x86 tests.
+# Copyright (C) 2018 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+# Test very simple native Linux/x86 programs with linux-x86.S.
+if { ![isnative] || [which $CC] == 0 \
+ || (![istarget "i?86-*-linux*"] \
+ && ![istarget "x86_64-*-linux*"] \
+ && ![istarget "amd64-*-linux*"]) } {
+ return
+}
+
+# Add $PLT_CFLAGS if PLT is expected.
+global PLT_CFLAGS
+# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
+global NOPIE_CFLAGS NOPIE_LDFLAGS
+
+run_ld_link_exec_tests [list \
+ [list \
+ "Run PR ld/23428 test" \
+ "--no-dynamic-linker -z separate-code" \
+ "" \
+ { linux-x86.S pr23428.c } \
+ "pr23428" \
+ "pass.out" \
+ "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
+ "asm" \
+ ] \
+]
diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
new file mode 100644
index 0000000..3631ed7
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23428.c
@@ -0,0 +1,43 @@
+#include <unistd.h>
+#include <link.h>
+#include <syscall.h>
+
+#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
+
+int
+main (int argc, char **argv)
+{
+ char **ev = &argv[argc + 1];
+ char **evp = ev;
+ ElfW(auxv_t) *av;
+ const ElfW(Phdr) *phdr = NULL;
+ size_t phnum = 0;
+ size_t loadnum = 0;
+ int fd = STDOUT_FILENO;
+ size_t i;
+
+ while (*evp++ != NULL)
+ ;
+
+ av = (ElfW(auxv_t) *) evp;
+
+ for (; av->a_type != AT_NULL; ++av)
+ switch (av->a_type)
+ {
+ case AT_PHDR:
+ phdr = (const void *) av->a_un.a_val;
+ break;
+ case AT_PHNUM:
+ phnum = av->a_un.a_val;
+ break;
+ }
+
+ for (i = 0; i < phnum; i++, phdr++)
+ if (phdr->p_type == PT_LOAD)
+ loadnum++;
+
+ syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
+
+ syscall (SYS_exit, !loadnum);
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
index b58139e..3909c0e 100644
--- a/ld/testsuite/ld-elf/sec64k.exp
+++ b/ld/testsuite/ld-elf/sec64k.exp
@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
foreach sfile $sfiles { puts $ofd "#source: $sfile" }
if { [istarget spu*-*-*] } {
puts $ofd "#ld: --local-store 0:0"
+ } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
+ puts $ofd "#ld: -z noseparate-code"
} else {
puts $ofd "#ld:"
}
diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d
index ac9beff..aba7d6b 100644
--- a/ld/testsuite/ld-i386/abs-iamcu.d
+++ b/ld/testsuite/ld-i386/abs-iamcu.d
@@ -2,7 +2,7 @@
#source: abs.s
#source: zero.s
#as: --32 -march=iamcu
-#ld: -m elf_iamcu
+#ld: -m elf_iamcu -z noseparate-code
#objdump: -rs -j .text
.*: file format .*
diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d
index e660aca..191ee44 100644
--- a/ld/testsuite/ld-i386/abs.d
+++ b/ld/testsuite/ld-i386/abs.d
@@ -2,7 +2,7 @@
#as: --32
#source: abs.s
#source: zero.s
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#objdump: -rs
.*: file format .*
diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d
index ec51540..7eba52d 100644
--- a/ld/testsuite/ld-i386/pr12718.d
+++ b/ld/testsuite/ld-i386/pr12718.d
@@ -1,6 +1,6 @@
#name: PR ld/12718
#as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#readelf: -S
There are 5 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d
index e49079b..ea2da3e 100644
--- a/ld/testsuite/ld-i386/pr12921.d
+++ b/ld/testsuite/ld-i386/pr12921.d
@@ -1,6 +1,6 @@
#name: PR ld/12921
#as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#readelf: -S --wide
There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld
index b22eaa1..f89855a 100644
--- a/ld/testsuite/ld-linkonce/zeroeh.ld
+++ b/ld/testsuite/ld-linkonce/zeroeh.ld
@@ -2,4 +2,5 @@ SECTIONS {
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
.gcc_except_table 0x2000 : { *(.gcc_except_table) }
.eh_frame 0x4000 : { *(.eh_frame) }
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
index 5ff057a..6eda1d2 100644
--- a/ld/testsuite/ld-scripts/print-memory-usage.t
+++ b/ld/testsuite/ld-scripts/print-memory-usage.t
@@ -11,4 +11,6 @@ SECTIONS
*(.data)
*(.rw)
}
+
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t
index 7238639..c3c4edd 100644
--- a/ld/testsuite/ld-scripts/size-2.t
+++ b/ld/testsuite/ld-scripts/size-2.t
@@ -18,4 +18,5 @@ SECTIONS
LONG (SIZEOF (.tdata))
LONG (SIZEOF (.tbss))
} :image
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d
index 2c26639..6b0fde0 100644
--- a/ld/testsuite/ld-x86-64/abs-k1om.d
+++ b/ld/testsuite/ld-x86-64/abs-k1om.d
@@ -2,7 +2,7 @@
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=k1om
-#ld: -m elf_k1om
+#ld: -m elf_k1om -z noseparate-code
#objdump: -rs -j .text
.*: file format .*
diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d
index 1fb96d4..f87869f 100644
--- a/ld/testsuite/ld-x86-64/abs-l1om.d
+++ b/ld/testsuite/ld-x86-64/abs-l1om.d
@@ -2,7 +2,7 @@
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=l1om
-#ld: -m elf_l1om
+#ld: -m elf_l1om -z noseparate-code
#objdump: -rs -j .text
#target: x86_64-*-linux*
diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d
index b24b018..d99ab46 100644
--- a/ld/testsuite/ld-x86-64/abs.d
+++ b/ld/testsuite/ld-x86-64/abs.d
@@ -1,7 +1,7 @@
#name: Absolute non-overflowing relocs
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
-#ld:
+#ld: -z noseparate-code
#objdump: -rs
.*: file format .*
diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d
index 07d1732..2c503ff 100644
--- a/ld/testsuite/ld-x86-64/pr12718.d
+++ b/ld/testsuite/ld-x86-64/pr12718.d
@@ -1,6 +1,6 @@
#name: PR ld/12718
#as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
#readelf: -S --wide
There are 5 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d
index 6fe6abe..1162d55 100644
--- a/ld/testsuite/ld-x86-64/pr12921.d
+++ b/ld/testsuite/ld-x86-64/pr12921.d
@@ -1,6 +1,6 @@
#name: PR ld/12921
#as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
#readelf: -S --wide
There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index cfbefe9..1095091 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
continue
}
- if { [ string match "c++" $lang ] } {
+ if { [ string match "asm" $lang ] } {
+ set link_proc ld_link
+ set link_cmd $ld
+ } elseif { [ string match "c++" $lang ] } {
set link_proc ld_link
set link_cmd $CXX
} else {
--
2.9.3
@@ -0,0 +1,139 @@
From 28a27bdbb9500797e6767f80c8128b09112aeed5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sat, 11 Aug 2018 06:41:33 -0700
Subject: [PATCH] x86: Properly add X86_ISA_1_NEEDED property
Existing properties may be removed during property merging. We avoid
adding X86_ISA_1_NEEDED property only if existing properties won't be
removed.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
add X86_ISA_1_NEEDED property only if existing properties won't
be removed.
ld/
PR ld/23428
* testsuite/ld-elf/dummy.s: New file.
* testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
* testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
(cherry picked from commit ab9e342807d132182892de1be1a92d6e91a5c1da)
---
bfd/ChangeLog | 7 +++++++
bfd/elfxx-x86.c | 28 ++++++++++++++++++++++------
ld/ChangeLog | 7 +++++++
ld/testsuite/ld-elf/dummy.s | 1 +
ld/testsuite/ld-elf/linux-x86.S | 28 ++++++++++++++++++++++++++++
ld/testsuite/ld-elf/linux-x86.exp | 2 +-
6 files changed, 66 insertions(+), 7 deletions(-)
create mode 100644 ld/testsuite/ld-elf/dummy.s
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 7ccfd25..2d8f7b6 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2588,7 +2588,6 @@ _bfd_x86_elf_link_setup_gnu_properties
prop->pr_kind = property_number;
}
else if (has_text
- && elf_properties (ebfd) == NULL
&& elf_tdata (info->output_bfd)->o->build_id.sec == NULL
&& !htab->elf.dynamic_sections_created
&& !info->traditional_format
@@ -2598,11 +2597,28 @@ _bfd_x86_elf_link_setup_gnu_properties
/* If the separate code program header is needed, make sure
that the first read-only PT_LOAD segment has no code by
adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
- prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_ISA_1_NEEDED,
- 4);
- prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
- prop->pr_kind = property_number;
+ elf_property_list *list;
+ bfd_boolean need_property = TRUE;
+
+ for (list = elf_properties (ebfd); list; list = list->next)
+ switch (list->property.pr_type)
+ {
+ case GNU_PROPERTY_STACK_SIZE:
+ case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
+ case GNU_PROPERTY_X86_ISA_1_NEEDED:
+ /* These properties won't be removed during merging. */
+ need_property = FALSE;
+ break;
+ }
+
+ if (need_property)
+ {
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+ }
}
/* Create the GNU property note section if needed. */
diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
new file mode 100644
index 0000000..403f980
--- /dev/null
+++ b/ld/testsuite/ld-elf/dummy.s
@@ -0,0 +1 @@
+# Dummy
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
index bdf40c6..d94abc1 100644
--- a/ld/testsuite/ld-elf/linux-x86.S
+++ b/ld/testsuite/ld-elf/linux-x86.S
@@ -61,3 +61,31 @@ syscall:
ret /* Return to caller. */
.size syscall, .-syscall
.section .note.GNU-stack,"",@progbits
+
+ .section ".note.gnu.property", "a"
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+2: .long 0xc0000002 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x2
+4:
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+5:
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
index 36217c6..f6f5a80 100644
--- a/ld/testsuite/ld-elf/linux-x86.exp
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -37,7 +37,7 @@ run_ld_link_exec_tests [list \
"Run PR ld/23428 test" \
"--no-dynamic-linker -z separate-code" \
"" \
- { linux-x86.S pr23428.c } \
+ { linux-x86.S pr23428.c dummy.s } \
"pr23428" \
"pass.out" \
"$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
--
2.9.3
@@ -0,0 +1,587 @@
From d55c3e36094f06bb1fb02f5eac19fdccf1d91f7e Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 8 Aug 2018 06:09:15 -0700
Subject: [PATCH] x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
corresponding x86 instruction set isn’t used. When merging properties
from 2 input files and one input file doesn't have the
GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
it neither. This patch removes the GNU_PROPERTY_X86_ISA_1_USED
property if an input file doesn't have it.
This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
requirement.
bfd/
PR ld/23486
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
(_bfd_x86_elf_link_setup_gnu_properties): Adding the
GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
GNU_PROPERTY_X86_ISA_1_USED, property.
ld/
PR ld/23486
* testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr23486a.d: New file.
* testsuite/ld-i386/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486a.d: Likewise.
* testsuite/ld-x86-64/pr23486a.s: Likewise.
* testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486b.s: Likewise.
* testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
(cherry picked from commit f7309df20c4e787041cedc4a6aced89c15259e54)
---
bfd/ChangeLog | 9 +++++++
bfd/elfxx-x86.c | 25 ++++++++++++++----
ld/ChangeLog | 32 +++++++++++++++++++++++
ld/testsuite/ld-i386/i386.exp | 2 ++
ld/testsuite/ld-i386/pr23486a.d | 10 +++++++
ld/testsuite/ld-i386/pr23486b.d | 10 +++++++
ld/testsuite/ld-i386/property-3.r | 1 -
ld/testsuite/ld-i386/property-4.r | 1 -
ld/testsuite/ld-i386/property-5.r | 1 -
ld/testsuite/ld-i386/property-x86-ibt3a.d | 5 ++--
ld/testsuite/ld-i386/property-x86-ibt3b.d | 5 ++--
ld/testsuite/ld-i386/property-x86-shstk3a.d | 5 ++--
ld/testsuite/ld-i386/property-x86-shstk3b.d | 5 ++--
ld/testsuite/ld-x86-64/pr23486a-x32.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486a.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486a.s | 30 +++++++++++++++++++++
ld/testsuite/ld-x86-64/pr23486b-x32.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486b.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486b.s | 30 +++++++++++++++++++++
ld/testsuite/ld-x86-64/property-3.r | 1 -
ld/testsuite/ld-x86-64/property-4.r | 1 -
ld/testsuite/ld-x86-64/property-5.r | 1 -
ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3a.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3b.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3a.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3b.d | 5 ++--
ld/testsuite/ld-x86-64/x86-64.exp | 4 +++
31 files changed, 211 insertions(+), 47 deletions(-)
create mode 100644 ld/testsuite/ld-i386/pr23486a.d
create mode 100644 ld/testsuite/ld-i386/pr23486b.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a-x32.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a.s
create mode 100644 ld/testsuite/ld-x86-64/pr23486b-x32.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486b.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486b.s
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 2e4ff88..7ccfd25 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
switch (pr_type)
{
case GNU_PROPERTY_X86_ISA_1_USED:
+ if (aprop == NULL || bprop == NULL)
+ {
+ /* Only one of APROP and BPROP can be NULL. */
+ if (aprop != NULL)
+ {
+ /* Remove this property since the other input file doesn't
+ have it. */
+ aprop->pr_kind = property_remove;
+ updated = TRUE;
+ }
+ break;
+ }
+ goto or_property;
+
case GNU_PROPERTY_X86_ISA_1_NEEDED:
if (aprop != NULL && bprop != NULL)
{
+or_property:
number = aprop->u.number;
aprop->u.number = number | bprop->u.number;
- /* Remove the property if ISA bits are empty. */
+ /* Remove the property if all bits are empty. */
if (aprop->u.number == 0)
{
aprop->pr_kind = property_remove;
@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
{
if (aprop->u.number == 0)
{
- /* Remove APROP if ISA bits are empty. */
+ /* Remove APROP if all bits are empty. */
aprop->pr_kind = property_remove;
updated = TRUE;
}
}
else
{
- /* Return TRUE if APROP is NULL and ISA bits of BPROP
+ /* Return TRUE if APROP is NULL and all bits of BPROP
aren't empty to indicate that BPROP should be added
to ABFD. */
updated = bprop->u.number != 0;
@@ -2582,9 +2597,9 @@ _bfd_x86_elf_link_setup_gnu_properties
{
/* If the separate code program header is needed, make sure
that the first read-only PT_LOAD segment has no code by
- adding a GNU_PROPERTY_X86_ISA_1_USED note. */
+ adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_ISA_1_USED,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
4);
prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
prop->pr_kind = property_number;
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 6d794fe..78dad02 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -462,6 +462,8 @@ run_dump_test "pr23189"
run_dump_test "pr23194"
run_dump_test "pr23372a"
run_dump_test "pr23372b"
+run_dump_test "pr23486a"
+run_dump_test "pr23486b"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
new file mode 100644
index 0000000..41a6dcf
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr23486a.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486a.s
+#source: ../ld-x86-64/pr23486b.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
new file mode 100644
index 0000000..08019b7
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr23486b.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486b.s
+#source: ../ld-x86-64/pr23486a.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
index 0ed91f5..d03203c 100644
--- a/ld/testsuite/ld-i386/property-3.r
+++ b/ld/testsuite/ld-i386/property-3.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: 586, SSE
x86 ISA needed: i486, 586
#pass
diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
index cb2bc15..da295eb 100644
--- a/ld/testsuite/ld-i386/property-4.r
+++ b/ld/testsuite/ld-i386/property-4.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
index 5529650..e414159 100644
--- a/ld/testsuite/ld-i386/property-5.r
+++ b/ld/testsuite/ld-i386/property-5.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
index 4bb35b0..0aedea1 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
index 418d58a..bd69ac6 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
index e261038..76d2a39 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
index 25f3d23..e770ecf 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
new file mode 100644
index 0000000..6d9fa68
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
new file mode 100644
index 0000000..dc2b7bf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
new file mode 100644
index 0000000..a07d0c7
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a.s
@@ -0,0 +1,30 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_ISA_1_USED */
+ .long 0xc0000000 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ .long 0xa
+3:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
new file mode 100644
index 0000000..0445e69
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d
@@ -0,0 +1,10 @@
+#source: pr23486b.s
+#source: pr23486a.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
new file mode 100644
index 0000000..dc2b7bf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
new file mode 100644
index 0000000..c5167ee
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b.s
@@ -0,0 +1,30 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_ISA_1_NEEDED */
+ .long 0xc0000001 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ .long 0x3
+3:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
index 0ed91f5..d03203c 100644
--- a/ld/testsuite/ld-x86-64/property-3.r
+++ b/ld/testsuite/ld-x86-64/property-3.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: 586, SSE
x86 ISA needed: i486, 586
#pass
diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
index cb2bc15..da295eb 100644
--- a/ld/testsuite/ld-x86-64/property-4.r
+++ b/ld/testsuite/ld-x86-64/property-4.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
index 5529650..e414159 100644
--- a/ld/testsuite/ld-x86-64/property-5.r
+++ b/ld/testsuite/ld-x86-64/property-5.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
index 011426f..4cec728 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
index 1b4229a..a8df49a 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
index 290ed6a..c112626 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
index 1142e03..f10dffd 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
index 819542d..0147a3c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
index 4c5d0e0..1f8c2dc 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
index ba181e0..7ca2539 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
index 5216f38..f66a40e 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 6edb9e8..ae21e55 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -403,6 +403,10 @@ run_dump_test "pr23372a"
run_dump_test "pr23372a-x32"
run_dump_test "pr23372b"
run_dump_test "pr23372b-x32"
+run_dump_test "pr23486a"
+run_dump_test "pr23486a-x32"
+run_dump_test "pr23486b"
+run_dump_test "pr23486b-x32"
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
return
--
2.9.3
+29 -23
View File
@@ -5,17 +5,20 @@
pkgname="binutils-armhf"
pkgver=2.31.1
pkgrel=0
pkgrel=2
pkgdesc="Tools necessary to build programs for armhf targets"
url="https://www.gnu.org/software/binutils/"
depends=""
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison"
arch="aarch64 x86_64 x86"
arch="armv7 aarch64 x86_64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
x86-Properly-add-X86_ISA_1_NEEDED-property.patch
binutils-ld-fix-static-linking.patch
gold-mips.patch
"
@@ -32,34 +35,37 @@ fi
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec armhf)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
--with-lib-path=/usr/lib \
--prefix=/usr \
--with-sysroot=/usr/$_target \
--enable-ld=default \
--enable-gold=yes \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-werror \
--disable-nls
make
_target="$(arch_to_hostspec armhf)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
--with-lib-path=/usr/lib \
--prefix=/usr \
--with-sysroot=/usr/$_target \
--enable-ld=default \
--enable-gold=yes \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-werror \
--disable-nls
make
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
rm -rf "$pkgdir"/usr/share
# remove man, info folders
rm -rf "$pkgdir"/usr/share
}
sha512sums="b42954e6f49a0adcd2676bdd77dfb59bfc25cec8184b007521d1e2b1d5d0593b58639e3d9448d5a40fe024c3cea386a37743627d6bb16d502f52a4a32b9573bd binutils-2.31.1.tar.bz2
d95fd77e1c2c4670a2a11979d6811b358ba0f067b917b33d241eca20cfe66553f6a6fccc5ec26d8d29045e487cb74389fbf86426f80cf81df95608835a566cfc x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
ce5d3c935057d624c1ce75722e7b5e4583812d46797edce8c381a94b2643f44f7bd0165e7e9b8e358955f4d979074ee487598efbf24389a4013681f99ff7c595 x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
1878bed194529afb2430af21ba9712d6819c5fdfdc5c8db652175bf86d0a0c710ac2bd3ec728bf874887301bd187d91bf60a374c47850c7bd2eafbf6653d74d8 x86-Properly-add-X86_ISA_1_NEEDED-property.patch
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
@@ -1,93 +0,0 @@
From d66deb71f1537e2e30dccdfda22eed5d46ec47eb Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Wed, 14 Mar 2018 22:09:33 +1030
Subject: [PATCH] PowerPC64 debian bug 886264, out-of-line save/restore
functions
This calculation in relocate_section
if (stub_entry->stub_type == ppc_stub_save_res)
relocation += (stub_sec->output_offset
+ stub_sec->output_section->vma
+ stub_sec->size - htab->sfpr->size
- htab->sfpr->output_offset
- htab->sfpr->output_section->vma);
to adjust from the original out-of-line save/restore function address
in sfpr to a copy at the end of stub_sec goes wrong when stub_sec is
padded, because the copy is no longer at the end of stub_sec. The
solution is to pad before copying sfpr, so the copy is always at the
end of stub_sec.
* elf64-ppc.c (sfpr_define): Adjust for stub_sec size having
sfpr size added before defining alias symbols.
(ppc64_elf_build_stubs): Add stub section padding before
copying sfpr contents and defining save/restore alias symbols.
(cherry picked from commit 7dda8d3cf3b089bb7e03c4cdbec827fc6a188c88)
---
bfd/ChangeLog | 9 +++++++++
bfd/elf64-ppc.c | 33 ++++++++++++++++++---------------
2 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 6fcdff0..039294f 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -6645,7 +6645,7 @@ sfpr_define (struct bfd_link_info *info,
{
s->root.type = bfd_link_hash_defined;
s->root.u.def.section = stub_sec;
- s->root.u.def.value = (stub_sec->size
+ s->root.u.def.value = (stub_sec->size - htab->sfpr->size
+ h->elf.root.u.def.value);
s->ref_regular = 1;
s->def_regular = 1;
@@ -13232,20 +13232,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
for (group = htab->group; group != NULL; group = group->next)
if (group->needs_save_res)
- {
- stub_sec = group->stub_sec;
- memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents,
- htab->sfpr->size);
- if (htab->params->emit_stub_syms)
- {
- unsigned int i;
-
- for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
- if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
- return FALSE;
- }
- stub_sec->size += htab->sfpr->size;
- }
+ group->stub_sec->size += htab->sfpr->size;
if (htab->relbrlt != NULL)
htab->relbrlt->reloc_count = 0;
@@ -13259,6 +13246,22 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
}
for (group = htab->group; group != NULL; group = group->next)
+ if (group->needs_save_res)
+ {
+ stub_sec = group->stub_sec;
+ memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size,
+ htab->sfpr->contents, htab->sfpr->size);
+ if (htab->params->emit_stub_syms)
+ {
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
+ if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
+ return FALSE;
+ }
+ }
+
+ for (group = htab->group; group != NULL; group = group->next)
if ((stub_sec = group->stub_sec) != NULL)
{
stub_sec_count += 1;
--
2.9.3
@@ -0,0 +1,567 @@
From 6737a6b34f4823deb7142f27b4074831a37ac1e1 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Fri, 20 Jul 2018 09:18:47 -0700
Subject: [PATCH] x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed
When -z separate-code, which is enabled by default for Linux/x86, is
used to create executable, ld won't place any data in the code-only
PT_LOAD segment. If there are no data sections placed before the
code-only PT_LOAD segment, the program headers won't be mapped into
any PT_LOAD segment. When the executable tries to access it (based
on the program header address passed in AT_PHDR), it will lead to
segfault. This patch inserts a GNU_PROPERTY_X86_ISA_1_USED note if
there may be no data sections before the text section so that the
first PT_LOAD segment won't be code-only and will contain the program
header.
Testcases are adjusted to either pass "-z noseparate-code" to ld or
discard the .note.gnu.property section. A Linux/x86 run-time test is
added.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
separate code program header is needed, make sure that the first
read-only PT_LOAD segment has no code by adding a
GNU_PROPERTY_X86_ISA_1_USED note.
ld/
PR ld/23428
* testsuite/ld-elf/linux-x86.S: New file.
* testsuite/ld-elf/linux-x86.exp: Likewise.
* testsuite/ld-elf/pr23428.c: Likewise.
* testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
for Linux/x86 targets.
* testsuite/ld-i386/abs-iamcu.d: Likewise.
* testsuite/ld-i386/abs.d: Likewise.
* testsuite/ld-i386/pr12718.d: Likewise.
* testsuite/ld-i386/pr12921.d: Likewise.
* testsuite/ld-x86-64/abs-k1om.d: Likewise.
* testsuite/ld-x86-64/abs-l1om.d: Likewise.
* testsuite/ld-x86-64/abs.d: Likewise.
* testsuite/ld-x86-64/pr12718.d: Likewise.
* testsuite/ld-x86-64/pr12921.d: Likewise.
* testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
section.
* testsuite/ld-scripts/print-memory-usage.t: Likewise.
* testsuite/ld-scripts/size-2.t: Likewise.
* testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld
to create executable if language is "asm".
(cherry picked from commit 241e64e3b42cd9eba514b8e0ad2ef39a337f10a5)
---
bfd/ChangeLog | 8 ++++
bfd/elfxx-x86.c | 60 +++++++++++++++++++-------
ld/ChangeLog | 24 +++++++++++
ld/testsuite/ld-elf/linux-x86.S | 63 ++++++++++++++++++++++++++++
ld/testsuite/ld-elf/linux-x86.exp | 46 ++++++++++++++++++++
ld/testsuite/ld-elf/pr23428.c | 43 +++++++++++++++++++
ld/testsuite/ld-elf/sec64k.exp | 2 +
ld/testsuite/ld-i386/abs-iamcu.d | 2 +-
ld/testsuite/ld-i386/abs.d | 2 +-
ld/testsuite/ld-i386/pr12718.d | 2 +-
ld/testsuite/ld-i386/pr12921.d | 2 +-
ld/testsuite/ld-linkonce/zeroeh.ld | 1 +
ld/testsuite/ld-scripts/print-memory-usage.t | 2 +
ld/testsuite/ld-scripts/size-2.t | 1 +
ld/testsuite/ld-x86-64/abs-k1om.d | 2 +-
ld/testsuite/ld-x86-64/abs-l1om.d | 2 +-
ld/testsuite/ld-x86-64/abs.d | 2 +-
ld/testsuite/ld-x86-64/pr12718.d | 2 +-
ld/testsuite/ld-x86-64/pr12921.d | 2 +-
ld/testsuite/lib/ld-lib.exp | 5 ++-
20 files changed, 248 insertions(+), 25 deletions(-)
create mode 100644 ld/testsuite/ld-elf/linux-x86.S
create mode 100644 ld/testsuite/ld-elf/linux-x86.exp
create mode 100644 ld/testsuite/ld-elf/pr23428.c
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c1174a..d3831b7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
+ separate code program header is needed, make sure that the first
+ read-only PT_LOAD segment has no code by adding a
+ GNU_PROPERTY_X86_ISA_1_USED note.
+
2018-07-18 Nick Clifton <nickc@redhat.com>
* development.sh: Set to true.
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index a2497aa..2e4ff88 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2524,6 +2524,7 @@ _bfd_x86_elf_link_setup_gnu_properties
const struct elf_backend_data *bed;
unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
unsigned int got_align;
+ bfd_boolean has_text = FALSE;
features = 0;
if (info->ibt)
@@ -2538,24 +2539,59 @@ _bfd_x86_elf_link_setup_gnu_properties
if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
&& bfd_count_sections (pbfd) != 0)
{
+ if (!has_text)
+ {
+ /* Check if there is no non-empty text section. */
+ sec = bfd_get_section_by_name (pbfd, ".text");
+ if (sec != NULL && sec->size != 0)
+ has_text = TRUE;
+ }
+
ebfd = pbfd;
if (elf_properties (pbfd) != NULL)
break;
}
- if (ebfd != NULL && features)
+ bed = get_elf_backend_data (info->output_bfd);
+
+ htab = elf_x86_hash_table (info, bed->target_id);
+ if (htab == NULL)
+ return pbfd;
+
+ if (ebfd != NULL)
{
- /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
- GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
- prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_FEATURE_1_AND,
- 4);
- prop->u.number |= features;
- prop->pr_kind = property_number;
+ prop = NULL;
+ if (features)
+ {
+ /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
+ GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_FEATURE_1_AND,
+ 4);
+ prop->u.number |= features;
+ prop->pr_kind = property_number;
+ }
+ else if (has_text
+ && elf_properties (ebfd) == NULL
+ && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
+ && !htab->elf.dynamic_sections_created
+ && !info->traditional_format
+ && (info->output_bfd->flags & D_PAGED) != 0
+ && info->separate_code)
+ {
+ /* If the separate code program header is needed, make sure
+ that the first read-only PT_LOAD segment has no code by
+ adding a GNU_PROPERTY_X86_ISA_1_USED note. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_USED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+ }
/* Create the GNU property note section if needed. */
- if (pbfd == NULL)
+ if (prop != NULL && pbfd == NULL)
{
sec = bfd_make_section_with_flags (ebfd,
NOTE_GNU_PROPERTY_SECTION_NAME,
@@ -2581,12 +2617,6 @@ error_alignment:
pbfd = _bfd_elf_link_setup_gnu_properties (info);
- bed = get_elf_backend_data (info->output_bfd);
-
- htab = elf_x86_hash_table (info, bed->target_id);
- if (htab == NULL)
- return pbfd;
-
htab->r_info = init_table->r_info;
htab->r_sym = init_table->r_sym;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c07e442..cfadbd4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,27 @@
+2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * testsuite/ld-elf/linux-x86.S: New file.
+ * testsuite/ld-elf/linux-x86.exp: Likewise.
+ * testsuite/ld-elf/pr23428.c: Likewise.
+ * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
+ for Linux/x86 targets.
+ * testsuite/ld-i386/abs-iamcu.d: Likewise.
+ * testsuite/ld-i386/abs.d: Likewise.
+ * testsuite/ld-i386/pr12718.d: Likewise.
+ * testsuite/ld-i386/pr12921.d: Likewise.
+ * testsuite/ld-x86-64/abs-k1om.d: Likewise.
+ * testsuite/ld-x86-64/abs-l1om.d: Likewise.
+ * testsuite/ld-x86-64/abs.d: Likewise.
+ * testsuite/ld-x86-64/pr12718.d: Likewise.
+ * testsuite/ld-x86-64/pr12921.d: Likewise.
+ * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
+ section.
+ * testsuite/ld-scripts/print-memory-usage.t: Likewise.
+ * testsuite/ld-scripts/size-2.t: Likewise.
+ * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld to
+ create executable if language is "asm".
+
2018-07-18 Nick Clifton <nickc@redhat.com>
2.31.1 Release point.
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
new file mode 100644
index 0000000..bdf40c6
--- /dev/null
+++ b/ld/testsuite/ld-elf/linux-x86.S
@@ -0,0 +1,63 @@
+ .text
+ .globl _start
+ .type _start,@function
+ .p2align 4
+_start:
+ xorl %ebp, %ebp
+#ifdef __LP64__
+ popq %rdi
+ movq %rsp, %rsi
+ andq $~15, %rsp
+#elif defined __x86_64__
+ mov (%rsp),%edi
+ addl $4,%esp
+ movl %esp, %esi
+ andl $~15, %esp
+#else
+ popl %esi
+ movl %esp, %ecx
+ andl $~15, %esp
+
+ subl $8,%esp
+ pushl %ecx
+ pushl %esi
+#endif
+
+ call main
+
+ hlt
+
+ .type syscall, @function
+ .globl syscall
+ .p2align 4
+syscall:
+#ifdef __x86_64__
+ movq %rdi, %rax /* Syscall number -> rax. */
+ movq %rsi, %rdi /* shift arg1 - arg5. */
+ movq %rdx, %rsi
+ movq %rcx, %rdx
+ movq %r8, %r10
+ movq %r9, %r8
+ movq 8(%rsp),%r9 /* arg6 is on the stack. */
+ syscall /* Do the system call. */
+#else
+ push %ebp
+ push %edi
+ push %esi
+ push %ebx
+ mov 0x2c(%esp),%ebp
+ mov 0x28(%esp),%edi
+ mov 0x24(%esp),%esi
+ mov 0x20(%esp),%edx
+ mov 0x1c(%esp),%ecx
+ mov 0x18(%esp),%ebx
+ mov 0x14(%esp),%eax
+ int $0x80
+ pop %ebx
+ pop %esi
+ pop %edi
+ pop %ebp
+#endif
+ ret /* Return to caller. */
+ .size syscall, .-syscall
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
new file mode 100644
index 0000000..36217c6
--- /dev/null
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -0,0 +1,46 @@
+# Expect script for simple native Linux/x86 tests.
+# Copyright (C) 2018 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+# Test very simple native Linux/x86 programs with linux-x86.S.
+if { ![isnative] || [which $CC] == 0 \
+ || (![istarget "i?86-*-linux*"] \
+ && ![istarget "x86_64-*-linux*"] \
+ && ![istarget "amd64-*-linux*"]) } {
+ return
+}
+
+# Add $PLT_CFLAGS if PLT is expected.
+global PLT_CFLAGS
+# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
+global NOPIE_CFLAGS NOPIE_LDFLAGS
+
+run_ld_link_exec_tests [list \
+ [list \
+ "Run PR ld/23428 test" \
+ "--no-dynamic-linker -z separate-code" \
+ "" \
+ { linux-x86.S pr23428.c } \
+ "pr23428" \
+ "pass.out" \
+ "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
+ "asm" \
+ ] \
+]
diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
new file mode 100644
index 0000000..3631ed7
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23428.c
@@ -0,0 +1,43 @@
+#include <unistd.h>
+#include <link.h>
+#include <syscall.h>
+
+#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
+
+int
+main (int argc, char **argv)
+{
+ char **ev = &argv[argc + 1];
+ char **evp = ev;
+ ElfW(auxv_t) *av;
+ const ElfW(Phdr) *phdr = NULL;
+ size_t phnum = 0;
+ size_t loadnum = 0;
+ int fd = STDOUT_FILENO;
+ size_t i;
+
+ while (*evp++ != NULL)
+ ;
+
+ av = (ElfW(auxv_t) *) evp;
+
+ for (; av->a_type != AT_NULL; ++av)
+ switch (av->a_type)
+ {
+ case AT_PHDR:
+ phdr = (const void *) av->a_un.a_val;
+ break;
+ case AT_PHNUM:
+ phnum = av->a_un.a_val;
+ break;
+ }
+
+ for (i = 0; i < phnum; i++, phdr++)
+ if (phdr->p_type == PT_LOAD)
+ loadnum++;
+
+ syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
+
+ syscall (SYS_exit, !loadnum);
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
index b58139e..3909c0e 100644
--- a/ld/testsuite/ld-elf/sec64k.exp
+++ b/ld/testsuite/ld-elf/sec64k.exp
@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
foreach sfile $sfiles { puts $ofd "#source: $sfile" }
if { [istarget spu*-*-*] } {
puts $ofd "#ld: --local-store 0:0"
+ } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
+ puts $ofd "#ld: -z noseparate-code"
} else {
puts $ofd "#ld:"
}
diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d
index ac9beff..aba7d6b 100644
--- a/ld/testsuite/ld-i386/abs-iamcu.d
+++ b/ld/testsuite/ld-i386/abs-iamcu.d
@@ -2,7 +2,7 @@
#source: abs.s
#source: zero.s
#as: --32 -march=iamcu
-#ld: -m elf_iamcu
+#ld: -m elf_iamcu -z noseparate-code
#objdump: -rs -j .text
.*: file format .*
diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d
index e660aca..191ee44 100644
--- a/ld/testsuite/ld-i386/abs.d
+++ b/ld/testsuite/ld-i386/abs.d
@@ -2,7 +2,7 @@
#as: --32
#source: abs.s
#source: zero.s
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#objdump: -rs
.*: file format .*
diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d
index ec51540..7eba52d 100644
--- a/ld/testsuite/ld-i386/pr12718.d
+++ b/ld/testsuite/ld-i386/pr12718.d
@@ -1,6 +1,6 @@
#name: PR ld/12718
#as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#readelf: -S
There are 5 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d
index e49079b..ea2da3e 100644
--- a/ld/testsuite/ld-i386/pr12921.d
+++ b/ld/testsuite/ld-i386/pr12921.d
@@ -1,6 +1,6 @@
#name: PR ld/12921
#as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#readelf: -S --wide
There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld
index b22eaa1..f89855a 100644
--- a/ld/testsuite/ld-linkonce/zeroeh.ld
+++ b/ld/testsuite/ld-linkonce/zeroeh.ld
@@ -2,4 +2,5 @@ SECTIONS {
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
.gcc_except_table 0x2000 : { *(.gcc_except_table) }
.eh_frame 0x4000 : { *(.eh_frame) }
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
index 5ff057a..6eda1d2 100644
--- a/ld/testsuite/ld-scripts/print-memory-usage.t
+++ b/ld/testsuite/ld-scripts/print-memory-usage.t
@@ -11,4 +11,6 @@ SECTIONS
*(.data)
*(.rw)
}
+
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t
index 7238639..c3c4edd 100644
--- a/ld/testsuite/ld-scripts/size-2.t
+++ b/ld/testsuite/ld-scripts/size-2.t
@@ -18,4 +18,5 @@ SECTIONS
LONG (SIZEOF (.tdata))
LONG (SIZEOF (.tbss))
} :image
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d
index 2c26639..6b0fde0 100644
--- a/ld/testsuite/ld-x86-64/abs-k1om.d
+++ b/ld/testsuite/ld-x86-64/abs-k1om.d
@@ -2,7 +2,7 @@
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=k1om
-#ld: -m elf_k1om
+#ld: -m elf_k1om -z noseparate-code
#objdump: -rs -j .text
.*: file format .*
diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d
index 1fb96d4..f87869f 100644
--- a/ld/testsuite/ld-x86-64/abs-l1om.d
+++ b/ld/testsuite/ld-x86-64/abs-l1om.d
@@ -2,7 +2,7 @@
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=l1om
-#ld: -m elf_l1om
+#ld: -m elf_l1om -z noseparate-code
#objdump: -rs -j .text
#target: x86_64-*-linux*
diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d
index b24b018..d99ab46 100644
--- a/ld/testsuite/ld-x86-64/abs.d
+++ b/ld/testsuite/ld-x86-64/abs.d
@@ -1,7 +1,7 @@
#name: Absolute non-overflowing relocs
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
-#ld:
+#ld: -z noseparate-code
#objdump: -rs
.*: file format .*
diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d
index 07d1732..2c503ff 100644
--- a/ld/testsuite/ld-x86-64/pr12718.d
+++ b/ld/testsuite/ld-x86-64/pr12718.d
@@ -1,6 +1,6 @@
#name: PR ld/12718
#as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
#readelf: -S --wide
There are 5 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d
index 6fe6abe..1162d55 100644
--- a/ld/testsuite/ld-x86-64/pr12921.d
+++ b/ld/testsuite/ld-x86-64/pr12921.d
@@ -1,6 +1,6 @@
#name: PR ld/12921
#as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
#readelf: -S --wide
There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index cfbefe9..1095091 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
continue
}
- if { [ string match "c++" $lang ] } {
+ if { [ string match "asm" $lang ] } {
+ set link_proc ld_link
+ set link_cmd $ld
+ } elseif { [ string match "c++" $lang ] } {
set link_proc ld_link
set link_cmd $CXX
} else {
--
2.9.3
@@ -0,0 +1,139 @@
From 28a27bdbb9500797e6767f80c8128b09112aeed5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sat, 11 Aug 2018 06:41:33 -0700
Subject: [PATCH] x86: Properly add X86_ISA_1_NEEDED property
Existing properties may be removed during property merging. We avoid
adding X86_ISA_1_NEEDED property only if existing properties won't be
removed.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
add X86_ISA_1_NEEDED property only if existing properties won't
be removed.
ld/
PR ld/23428
* testsuite/ld-elf/dummy.s: New file.
* testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
* testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
(cherry picked from commit ab9e342807d132182892de1be1a92d6e91a5c1da)
---
bfd/ChangeLog | 7 +++++++
bfd/elfxx-x86.c | 28 ++++++++++++++++++++++------
ld/ChangeLog | 7 +++++++
ld/testsuite/ld-elf/dummy.s | 1 +
ld/testsuite/ld-elf/linux-x86.S | 28 ++++++++++++++++++++++++++++
ld/testsuite/ld-elf/linux-x86.exp | 2 +-
6 files changed, 66 insertions(+), 7 deletions(-)
create mode 100644 ld/testsuite/ld-elf/dummy.s
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 7ccfd25..2d8f7b6 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2588,7 +2588,6 @@ _bfd_x86_elf_link_setup_gnu_properties
prop->pr_kind = property_number;
}
else if (has_text
- && elf_properties (ebfd) == NULL
&& elf_tdata (info->output_bfd)->o->build_id.sec == NULL
&& !htab->elf.dynamic_sections_created
&& !info->traditional_format
@@ -2598,11 +2597,28 @@ _bfd_x86_elf_link_setup_gnu_properties
/* If the separate code program header is needed, make sure
that the first read-only PT_LOAD segment has no code by
adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
- prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_ISA_1_NEEDED,
- 4);
- prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
- prop->pr_kind = property_number;
+ elf_property_list *list;
+ bfd_boolean need_property = TRUE;
+
+ for (list = elf_properties (ebfd); list; list = list->next)
+ switch (list->property.pr_type)
+ {
+ case GNU_PROPERTY_STACK_SIZE:
+ case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
+ case GNU_PROPERTY_X86_ISA_1_NEEDED:
+ /* These properties won't be removed during merging. */
+ need_property = FALSE;
+ break;
+ }
+
+ if (need_property)
+ {
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+ }
}
/* Create the GNU property note section if needed. */
diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
new file mode 100644
index 0000000..403f980
--- /dev/null
+++ b/ld/testsuite/ld-elf/dummy.s
@@ -0,0 +1 @@
+# Dummy
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
index bdf40c6..d94abc1 100644
--- a/ld/testsuite/ld-elf/linux-x86.S
+++ b/ld/testsuite/ld-elf/linux-x86.S
@@ -61,3 +61,31 @@ syscall:
ret /* Return to caller. */
.size syscall, .-syscall
.section .note.GNU-stack,"",@progbits
+
+ .section ".note.gnu.property", "a"
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+2: .long 0xc0000002 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x2
+4:
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+5:
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
index 36217c6..f6f5a80 100644
--- a/ld/testsuite/ld-elf/linux-x86.exp
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -37,7 +37,7 @@ run_ld_link_exec_tests [list \
"Run PR ld/23428 test" \
"--no-dynamic-linker -z separate-code" \
"" \
- { linux-x86.S pr23428.c } \
+ { linux-x86.S pr23428.c dummy.s } \
"pr23428" \
"pass.out" \
"$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
--
2.9.3
@@ -0,0 +1,587 @@
From d55c3e36094f06bb1fb02f5eac19fdccf1d91f7e Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 8 Aug 2018 06:09:15 -0700
Subject: [PATCH] x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
corresponding x86 instruction set isn’t used. When merging properties
from 2 input files and one input file doesn't have the
GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
it neither. This patch removes the GNU_PROPERTY_X86_ISA_1_USED
property if an input file doesn't have it.
This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
requirement.
bfd/
PR ld/23486
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
(_bfd_x86_elf_link_setup_gnu_properties): Adding the
GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
GNU_PROPERTY_X86_ISA_1_USED, property.
ld/
PR ld/23486
* testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr23486a.d: New file.
* testsuite/ld-i386/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486a.d: Likewise.
* testsuite/ld-x86-64/pr23486a.s: Likewise.
* testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486b.s: Likewise.
* testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
(cherry picked from commit f7309df20c4e787041cedc4a6aced89c15259e54)
---
bfd/ChangeLog | 9 +++++++
bfd/elfxx-x86.c | 25 ++++++++++++++----
ld/ChangeLog | 32 +++++++++++++++++++++++
ld/testsuite/ld-i386/i386.exp | 2 ++
ld/testsuite/ld-i386/pr23486a.d | 10 +++++++
ld/testsuite/ld-i386/pr23486b.d | 10 +++++++
ld/testsuite/ld-i386/property-3.r | 1 -
ld/testsuite/ld-i386/property-4.r | 1 -
ld/testsuite/ld-i386/property-5.r | 1 -
ld/testsuite/ld-i386/property-x86-ibt3a.d | 5 ++--
ld/testsuite/ld-i386/property-x86-ibt3b.d | 5 ++--
ld/testsuite/ld-i386/property-x86-shstk3a.d | 5 ++--
ld/testsuite/ld-i386/property-x86-shstk3b.d | 5 ++--
ld/testsuite/ld-x86-64/pr23486a-x32.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486a.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486a.s | 30 +++++++++++++++++++++
ld/testsuite/ld-x86-64/pr23486b-x32.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486b.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486b.s | 30 +++++++++++++++++++++
ld/testsuite/ld-x86-64/property-3.r | 1 -
ld/testsuite/ld-x86-64/property-4.r | 1 -
ld/testsuite/ld-x86-64/property-5.r | 1 -
ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3a.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3b.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3a.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3b.d | 5 ++--
ld/testsuite/ld-x86-64/x86-64.exp | 4 +++
31 files changed, 211 insertions(+), 47 deletions(-)
create mode 100644 ld/testsuite/ld-i386/pr23486a.d
create mode 100644 ld/testsuite/ld-i386/pr23486b.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a-x32.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a.s
create mode 100644 ld/testsuite/ld-x86-64/pr23486b-x32.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486b.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486b.s
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 2e4ff88..7ccfd25 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
switch (pr_type)
{
case GNU_PROPERTY_X86_ISA_1_USED:
+ if (aprop == NULL || bprop == NULL)
+ {
+ /* Only one of APROP and BPROP can be NULL. */
+ if (aprop != NULL)
+ {
+ /* Remove this property since the other input file doesn't
+ have it. */
+ aprop->pr_kind = property_remove;
+ updated = TRUE;
+ }
+ break;
+ }
+ goto or_property;
+
case GNU_PROPERTY_X86_ISA_1_NEEDED:
if (aprop != NULL && bprop != NULL)
{
+or_property:
number = aprop->u.number;
aprop->u.number = number | bprop->u.number;
- /* Remove the property if ISA bits are empty. */
+ /* Remove the property if all bits are empty. */
if (aprop->u.number == 0)
{
aprop->pr_kind = property_remove;
@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
{
if (aprop->u.number == 0)
{
- /* Remove APROP if ISA bits are empty. */
+ /* Remove APROP if all bits are empty. */
aprop->pr_kind = property_remove;
updated = TRUE;
}
}
else
{
- /* Return TRUE if APROP is NULL and ISA bits of BPROP
+ /* Return TRUE if APROP is NULL and all bits of BPROP
aren't empty to indicate that BPROP should be added
to ABFD. */
updated = bprop->u.number != 0;
@@ -2582,9 +2597,9 @@ _bfd_x86_elf_link_setup_gnu_properties
{
/* If the separate code program header is needed, make sure
that the first read-only PT_LOAD segment has no code by
- adding a GNU_PROPERTY_X86_ISA_1_USED note. */
+ adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_ISA_1_USED,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
4);
prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
prop->pr_kind = property_number;
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 6d794fe..78dad02 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -462,6 +462,8 @@ run_dump_test "pr23189"
run_dump_test "pr23194"
run_dump_test "pr23372a"
run_dump_test "pr23372b"
+run_dump_test "pr23486a"
+run_dump_test "pr23486b"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
new file mode 100644
index 0000000..41a6dcf
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr23486a.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486a.s
+#source: ../ld-x86-64/pr23486b.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
new file mode 100644
index 0000000..08019b7
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr23486b.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486b.s
+#source: ../ld-x86-64/pr23486a.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
index 0ed91f5..d03203c 100644
--- a/ld/testsuite/ld-i386/property-3.r
+++ b/ld/testsuite/ld-i386/property-3.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: 586, SSE
x86 ISA needed: i486, 586
#pass
diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
index cb2bc15..da295eb 100644
--- a/ld/testsuite/ld-i386/property-4.r
+++ b/ld/testsuite/ld-i386/property-4.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
index 5529650..e414159 100644
--- a/ld/testsuite/ld-i386/property-5.r
+++ b/ld/testsuite/ld-i386/property-5.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
index 4bb35b0..0aedea1 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
index 418d58a..bd69ac6 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
index e261038..76d2a39 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
index 25f3d23..e770ecf 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
new file mode 100644
index 0000000..6d9fa68
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
new file mode 100644
index 0000000..dc2b7bf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
new file mode 100644
index 0000000..a07d0c7
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a.s
@@ -0,0 +1,30 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_ISA_1_USED */
+ .long 0xc0000000 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ .long 0xa
+3:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
new file mode 100644
index 0000000..0445e69
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d
@@ -0,0 +1,10 @@
+#source: pr23486b.s
+#source: pr23486a.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
new file mode 100644
index 0000000..dc2b7bf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
new file mode 100644
index 0000000..c5167ee
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b.s
@@ -0,0 +1,30 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_ISA_1_NEEDED */
+ .long 0xc0000001 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ .long 0x3
+3:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
index 0ed91f5..d03203c 100644
--- a/ld/testsuite/ld-x86-64/property-3.r
+++ b/ld/testsuite/ld-x86-64/property-3.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: 586, SSE
x86 ISA needed: i486, 586
#pass
diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
index cb2bc15..da295eb 100644
--- a/ld/testsuite/ld-x86-64/property-4.r
+++ b/ld/testsuite/ld-x86-64/property-4.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
index 5529650..e414159 100644
--- a/ld/testsuite/ld-x86-64/property-5.r
+++ b/ld/testsuite/ld-x86-64/property-5.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
index 011426f..4cec728 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
index 1b4229a..a8df49a 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
index 290ed6a..c112626 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
index 1142e03..f10dffd 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
index 819542d..0147a3c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
index 4c5d0e0..1f8c2dc 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
index ba181e0..7ca2539 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
index 5216f38..f66a40e 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 6edb9e8..ae21e55 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -403,6 +403,10 @@ run_dump_test "pr23372a"
run_dump_test "pr23372a-x32"
run_dump_test "pr23372b"
run_dump_test "pr23372b-x32"
+run_dump_test "pr23486a"
+run_dump_test "pr23486a-x32"
+run_dump_test "pr23486b"
+run_dump_test "pr23486b-x32"
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
return
--
2.9.3
+71
View File
@@ -0,0 +1,71 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen binutils-armv7
# Based on: main/binutils
pkgname="binutils-armv7"
pkgver=2.31.1
pkgrel=2
pkgdesc="Tools necessary to build programs for armv7 targets"
url="https://www.gnu.org/software/binutils/"
depends=""
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison"
arch="armhf aarch64 x86_64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
x86-Properly-add-X86_ISA_1_NEEDED-property.patch
binutils-ld-fix-static-linking.patch
gold-mips.patch
"
builddir="$srcdir/binutils-$pkgver"
if [ "$CHOST" != "$CTARGET" ]; then
pkgname="binutils-$CTARGET_ARCH"
subpackages=""
sonameprefix="binutils:"
fi
# secfixes:
# 2.28-r1:
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec armv7)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
--with-lib-path=/usr/lib \
--prefix=/usr \
--with-sysroot=/usr/$_target \
--enable-ld=default \
--enable-gold=yes \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-werror \
--disable-nls
make
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
rm -rf "$pkgdir"/usr/share
}
sha512sums="b42954e6f49a0adcd2676bdd77dfb59bfc25cec8184b007521d1e2b1d5d0593b58639e3d9448d5a40fe024c3cea386a37743627d6bb16d502f52a4a32b9573bd binutils-2.31.1.tar.bz2
d95fd77e1c2c4670a2a11979d6811b358ba0f067b917b33d241eca20cfe66553f6a6fccc5ec26d8d29045e487cb74389fbf86426f80cf81df95608835a566cfc x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
ce5d3c935057d624c1ce75722e7b5e4583812d46797edce8c381a94b2643f44f7bd0165e7e9b8e358955f4d979074ee487598efbf24389a4013681f99ff7c595 x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
1878bed194529afb2430af21ba9712d6819c5fdfdc5c8db652175bf86d0a0c710ac2bd3ec728bf874887301bd187d91bf60a374c47850c7bd2eafbf6653d74d8 x86-Properly-add-X86_ISA_1_NEEDED-property.patch
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
File renamed without changes.
@@ -0,0 +1,567 @@
From 6737a6b34f4823deb7142f27b4074831a37ac1e1 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Fri, 20 Jul 2018 09:18:47 -0700
Subject: [PATCH] x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed
When -z separate-code, which is enabled by default for Linux/x86, is
used to create executable, ld won't place any data in the code-only
PT_LOAD segment. If there are no data sections placed before the
code-only PT_LOAD segment, the program headers won't be mapped into
any PT_LOAD segment. When the executable tries to access it (based
on the program header address passed in AT_PHDR), it will lead to
segfault. This patch inserts a GNU_PROPERTY_X86_ISA_1_USED note if
there may be no data sections before the text section so that the
first PT_LOAD segment won't be code-only and will contain the program
header.
Testcases are adjusted to either pass "-z noseparate-code" to ld or
discard the .note.gnu.property section. A Linux/x86 run-time test is
added.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
separate code program header is needed, make sure that the first
read-only PT_LOAD segment has no code by adding a
GNU_PROPERTY_X86_ISA_1_USED note.
ld/
PR ld/23428
* testsuite/ld-elf/linux-x86.S: New file.
* testsuite/ld-elf/linux-x86.exp: Likewise.
* testsuite/ld-elf/pr23428.c: Likewise.
* testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
for Linux/x86 targets.
* testsuite/ld-i386/abs-iamcu.d: Likewise.
* testsuite/ld-i386/abs.d: Likewise.
* testsuite/ld-i386/pr12718.d: Likewise.
* testsuite/ld-i386/pr12921.d: Likewise.
* testsuite/ld-x86-64/abs-k1om.d: Likewise.
* testsuite/ld-x86-64/abs-l1om.d: Likewise.
* testsuite/ld-x86-64/abs.d: Likewise.
* testsuite/ld-x86-64/pr12718.d: Likewise.
* testsuite/ld-x86-64/pr12921.d: Likewise.
* testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
section.
* testsuite/ld-scripts/print-memory-usage.t: Likewise.
* testsuite/ld-scripts/size-2.t: Likewise.
* testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld
to create executable if language is "asm".
(cherry picked from commit 241e64e3b42cd9eba514b8e0ad2ef39a337f10a5)
---
bfd/ChangeLog | 8 ++++
bfd/elfxx-x86.c | 60 +++++++++++++++++++-------
ld/ChangeLog | 24 +++++++++++
ld/testsuite/ld-elf/linux-x86.S | 63 ++++++++++++++++++++++++++++
ld/testsuite/ld-elf/linux-x86.exp | 46 ++++++++++++++++++++
ld/testsuite/ld-elf/pr23428.c | 43 +++++++++++++++++++
ld/testsuite/ld-elf/sec64k.exp | 2 +
ld/testsuite/ld-i386/abs-iamcu.d | 2 +-
ld/testsuite/ld-i386/abs.d | 2 +-
ld/testsuite/ld-i386/pr12718.d | 2 +-
ld/testsuite/ld-i386/pr12921.d | 2 +-
ld/testsuite/ld-linkonce/zeroeh.ld | 1 +
ld/testsuite/ld-scripts/print-memory-usage.t | 2 +
ld/testsuite/ld-scripts/size-2.t | 1 +
ld/testsuite/ld-x86-64/abs-k1om.d | 2 +-
ld/testsuite/ld-x86-64/abs-l1om.d | 2 +-
ld/testsuite/ld-x86-64/abs.d | 2 +-
ld/testsuite/ld-x86-64/pr12718.d | 2 +-
ld/testsuite/ld-x86-64/pr12921.d | 2 +-
ld/testsuite/lib/ld-lib.exp | 5 ++-
20 files changed, 248 insertions(+), 25 deletions(-)
create mode 100644 ld/testsuite/ld-elf/linux-x86.S
create mode 100644 ld/testsuite/ld-elf/linux-x86.exp
create mode 100644 ld/testsuite/ld-elf/pr23428.c
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c1174a..d3831b7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
+ separate code program header is needed, make sure that the first
+ read-only PT_LOAD segment has no code by adding a
+ GNU_PROPERTY_X86_ISA_1_USED note.
+
2018-07-18 Nick Clifton <nickc@redhat.com>
* development.sh: Set to true.
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index a2497aa..2e4ff88 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2524,6 +2524,7 @@ _bfd_x86_elf_link_setup_gnu_properties
const struct elf_backend_data *bed;
unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
unsigned int got_align;
+ bfd_boolean has_text = FALSE;
features = 0;
if (info->ibt)
@@ -2538,24 +2539,59 @@ _bfd_x86_elf_link_setup_gnu_properties
if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
&& bfd_count_sections (pbfd) != 0)
{
+ if (!has_text)
+ {
+ /* Check if there is no non-empty text section. */
+ sec = bfd_get_section_by_name (pbfd, ".text");
+ if (sec != NULL && sec->size != 0)
+ has_text = TRUE;
+ }
+
ebfd = pbfd;
if (elf_properties (pbfd) != NULL)
break;
}
- if (ebfd != NULL && features)
+ bed = get_elf_backend_data (info->output_bfd);
+
+ htab = elf_x86_hash_table (info, bed->target_id);
+ if (htab == NULL)
+ return pbfd;
+
+ if (ebfd != NULL)
{
- /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
- GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
- prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_FEATURE_1_AND,
- 4);
- prop->u.number |= features;
- prop->pr_kind = property_number;
+ prop = NULL;
+ if (features)
+ {
+ /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
+ GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_FEATURE_1_AND,
+ 4);
+ prop->u.number |= features;
+ prop->pr_kind = property_number;
+ }
+ else if (has_text
+ && elf_properties (ebfd) == NULL
+ && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
+ && !htab->elf.dynamic_sections_created
+ && !info->traditional_format
+ && (info->output_bfd->flags & D_PAGED) != 0
+ && info->separate_code)
+ {
+ /* If the separate code program header is needed, make sure
+ that the first read-only PT_LOAD segment has no code by
+ adding a GNU_PROPERTY_X86_ISA_1_USED note. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_USED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+ }
/* Create the GNU property note section if needed. */
- if (pbfd == NULL)
+ if (prop != NULL && pbfd == NULL)
{
sec = bfd_make_section_with_flags (ebfd,
NOTE_GNU_PROPERTY_SECTION_NAME,
@@ -2581,12 +2617,6 @@ error_alignment:
pbfd = _bfd_elf_link_setup_gnu_properties (info);
- bed = get_elf_backend_data (info->output_bfd);
-
- htab = elf_x86_hash_table (info, bed->target_id);
- if (htab == NULL)
- return pbfd;
-
htab->r_info = init_table->r_info;
htab->r_sym = init_table->r_sym;
diff --git a/ld/ChangeLog b/ld/ChangeLog
index c07e442..cfadbd4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,27 @@
+2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * testsuite/ld-elf/linux-x86.S: New file.
+ * testsuite/ld-elf/linux-x86.exp: Likewise.
+ * testsuite/ld-elf/pr23428.c: Likewise.
+ * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
+ for Linux/x86 targets.
+ * testsuite/ld-i386/abs-iamcu.d: Likewise.
+ * testsuite/ld-i386/abs.d: Likewise.
+ * testsuite/ld-i386/pr12718.d: Likewise.
+ * testsuite/ld-i386/pr12921.d: Likewise.
+ * testsuite/ld-x86-64/abs-k1om.d: Likewise.
+ * testsuite/ld-x86-64/abs-l1om.d: Likewise.
+ * testsuite/ld-x86-64/abs.d: Likewise.
+ * testsuite/ld-x86-64/pr12718.d: Likewise.
+ * testsuite/ld-x86-64/pr12921.d: Likewise.
+ * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
+ section.
+ * testsuite/ld-scripts/print-memory-usage.t: Likewise.
+ * testsuite/ld-scripts/size-2.t: Likewise.
+ * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld to
+ create executable if language is "asm".
+
2018-07-18 Nick Clifton <nickc@redhat.com>
2.31.1 Release point.
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
new file mode 100644
index 0000000..bdf40c6
--- /dev/null
+++ b/ld/testsuite/ld-elf/linux-x86.S
@@ -0,0 +1,63 @@
+ .text
+ .globl _start
+ .type _start,@function
+ .p2align 4
+_start:
+ xorl %ebp, %ebp
+#ifdef __LP64__
+ popq %rdi
+ movq %rsp, %rsi
+ andq $~15, %rsp
+#elif defined __x86_64__
+ mov (%rsp),%edi
+ addl $4,%esp
+ movl %esp, %esi
+ andl $~15, %esp
+#else
+ popl %esi
+ movl %esp, %ecx
+ andl $~15, %esp
+
+ subl $8,%esp
+ pushl %ecx
+ pushl %esi
+#endif
+
+ call main
+
+ hlt
+
+ .type syscall, @function
+ .globl syscall
+ .p2align 4
+syscall:
+#ifdef __x86_64__
+ movq %rdi, %rax /* Syscall number -> rax. */
+ movq %rsi, %rdi /* shift arg1 - arg5. */
+ movq %rdx, %rsi
+ movq %rcx, %rdx
+ movq %r8, %r10
+ movq %r9, %r8
+ movq 8(%rsp),%r9 /* arg6 is on the stack. */
+ syscall /* Do the system call. */
+#else
+ push %ebp
+ push %edi
+ push %esi
+ push %ebx
+ mov 0x2c(%esp),%ebp
+ mov 0x28(%esp),%edi
+ mov 0x24(%esp),%esi
+ mov 0x20(%esp),%edx
+ mov 0x1c(%esp),%ecx
+ mov 0x18(%esp),%ebx
+ mov 0x14(%esp),%eax
+ int $0x80
+ pop %ebx
+ pop %esi
+ pop %edi
+ pop %ebp
+#endif
+ ret /* Return to caller. */
+ .size syscall, .-syscall
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
new file mode 100644
index 0000000..36217c6
--- /dev/null
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -0,0 +1,46 @@
+# Expect script for simple native Linux/x86 tests.
+# Copyright (C) 2018 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+# Test very simple native Linux/x86 programs with linux-x86.S.
+if { ![isnative] || [which $CC] == 0 \
+ || (![istarget "i?86-*-linux*"] \
+ && ![istarget "x86_64-*-linux*"] \
+ && ![istarget "amd64-*-linux*"]) } {
+ return
+}
+
+# Add $PLT_CFLAGS if PLT is expected.
+global PLT_CFLAGS
+# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
+global NOPIE_CFLAGS NOPIE_LDFLAGS
+
+run_ld_link_exec_tests [list \
+ [list \
+ "Run PR ld/23428 test" \
+ "--no-dynamic-linker -z separate-code" \
+ "" \
+ { linux-x86.S pr23428.c } \
+ "pr23428" \
+ "pass.out" \
+ "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
+ "asm" \
+ ] \
+]
diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
new file mode 100644
index 0000000..3631ed7
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23428.c
@@ -0,0 +1,43 @@
+#include <unistd.h>
+#include <link.h>
+#include <syscall.h>
+
+#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
+
+int
+main (int argc, char **argv)
+{
+ char **ev = &argv[argc + 1];
+ char **evp = ev;
+ ElfW(auxv_t) *av;
+ const ElfW(Phdr) *phdr = NULL;
+ size_t phnum = 0;
+ size_t loadnum = 0;
+ int fd = STDOUT_FILENO;
+ size_t i;
+
+ while (*evp++ != NULL)
+ ;
+
+ av = (ElfW(auxv_t) *) evp;
+
+ for (; av->a_type != AT_NULL; ++av)
+ switch (av->a_type)
+ {
+ case AT_PHDR:
+ phdr = (const void *) av->a_un.a_val;
+ break;
+ case AT_PHNUM:
+ phnum = av->a_un.a_val;
+ break;
+ }
+
+ for (i = 0; i < phnum; i++, phdr++)
+ if (phdr->p_type == PT_LOAD)
+ loadnum++;
+
+ syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
+
+ syscall (SYS_exit, !loadnum);
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
index b58139e..3909c0e 100644
--- a/ld/testsuite/ld-elf/sec64k.exp
+++ b/ld/testsuite/ld-elf/sec64k.exp
@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
foreach sfile $sfiles { puts $ofd "#source: $sfile" }
if { [istarget spu*-*-*] } {
puts $ofd "#ld: --local-store 0:0"
+ } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
+ puts $ofd "#ld: -z noseparate-code"
} else {
puts $ofd "#ld:"
}
diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d
index ac9beff..aba7d6b 100644
--- a/ld/testsuite/ld-i386/abs-iamcu.d
+++ b/ld/testsuite/ld-i386/abs-iamcu.d
@@ -2,7 +2,7 @@
#source: abs.s
#source: zero.s
#as: --32 -march=iamcu
-#ld: -m elf_iamcu
+#ld: -m elf_iamcu -z noseparate-code
#objdump: -rs -j .text
.*: file format .*
diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d
index e660aca..191ee44 100644
--- a/ld/testsuite/ld-i386/abs.d
+++ b/ld/testsuite/ld-i386/abs.d
@@ -2,7 +2,7 @@
#as: --32
#source: abs.s
#source: zero.s
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#objdump: -rs
.*: file format .*
diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d
index ec51540..7eba52d 100644
--- a/ld/testsuite/ld-i386/pr12718.d
+++ b/ld/testsuite/ld-i386/pr12718.d
@@ -1,6 +1,6 @@
#name: PR ld/12718
#as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#readelf: -S
There are 5 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d
index e49079b..ea2da3e 100644
--- a/ld/testsuite/ld-i386/pr12921.d
+++ b/ld/testsuite/ld-i386/pr12921.d
@@ -1,6 +1,6 @@
#name: PR ld/12921
#as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
#readelf: -S --wide
There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld
index b22eaa1..f89855a 100644
--- a/ld/testsuite/ld-linkonce/zeroeh.ld
+++ b/ld/testsuite/ld-linkonce/zeroeh.ld
@@ -2,4 +2,5 @@ SECTIONS {
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
.gcc_except_table 0x2000 : { *(.gcc_except_table) }
.eh_frame 0x4000 : { *(.eh_frame) }
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
index 5ff057a..6eda1d2 100644
--- a/ld/testsuite/ld-scripts/print-memory-usage.t
+++ b/ld/testsuite/ld-scripts/print-memory-usage.t
@@ -11,4 +11,6 @@ SECTIONS
*(.data)
*(.rw)
}
+
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t
index 7238639..c3c4edd 100644
--- a/ld/testsuite/ld-scripts/size-2.t
+++ b/ld/testsuite/ld-scripts/size-2.t
@@ -18,4 +18,5 @@ SECTIONS
LONG (SIZEOF (.tdata))
LONG (SIZEOF (.tbss))
} :image
+ /DISCARD/ : { *(.note.gnu.property) }
}
diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d
index 2c26639..6b0fde0 100644
--- a/ld/testsuite/ld-x86-64/abs-k1om.d
+++ b/ld/testsuite/ld-x86-64/abs-k1om.d
@@ -2,7 +2,7 @@
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=k1om
-#ld: -m elf_k1om
+#ld: -m elf_k1om -z noseparate-code
#objdump: -rs -j .text
.*: file format .*
diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d
index 1fb96d4..f87869f 100644
--- a/ld/testsuite/ld-x86-64/abs-l1om.d
+++ b/ld/testsuite/ld-x86-64/abs-l1om.d
@@ -2,7 +2,7 @@
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=l1om
-#ld: -m elf_l1om
+#ld: -m elf_l1om -z noseparate-code
#objdump: -rs -j .text
#target: x86_64-*-linux*
diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d
index b24b018..d99ab46 100644
--- a/ld/testsuite/ld-x86-64/abs.d
+++ b/ld/testsuite/ld-x86-64/abs.d
@@ -1,7 +1,7 @@
#name: Absolute non-overflowing relocs
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
-#ld:
+#ld: -z noseparate-code
#objdump: -rs
.*: file format .*
diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d
index 07d1732..2c503ff 100644
--- a/ld/testsuite/ld-x86-64/pr12718.d
+++ b/ld/testsuite/ld-x86-64/pr12718.d
@@ -1,6 +1,6 @@
#name: PR ld/12718
#as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
#readelf: -S --wide
There are 5 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d
index 6fe6abe..1162d55 100644
--- a/ld/testsuite/ld-x86-64/pr12921.d
+++ b/ld/testsuite/ld-x86-64/pr12921.d
@@ -1,6 +1,6 @@
#name: PR ld/12921
#as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
#readelf: -S --wide
There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index cfbefe9..1095091 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
continue
}
- if { [ string match "c++" $lang ] } {
+ if { [ string match "asm" $lang ] } {
+ set link_proc ld_link
+ set link_cmd $ld
+ } elseif { [ string match "c++" $lang ] } {
set link_proc ld_link
set link_cmd $CXX
} else {
--
2.9.3
@@ -0,0 +1,139 @@
From 28a27bdbb9500797e6767f80c8128b09112aeed5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sat, 11 Aug 2018 06:41:33 -0700
Subject: [PATCH] x86: Properly add X86_ISA_1_NEEDED property
Existing properties may be removed during property merging. We avoid
adding X86_ISA_1_NEEDED property only if existing properties won't be
removed.
bfd/
PR ld/23428
* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
add X86_ISA_1_NEEDED property only if existing properties won't
be removed.
ld/
PR ld/23428
* testsuite/ld-elf/dummy.s: New file.
* testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
* testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
(cherry picked from commit ab9e342807d132182892de1be1a92d6e91a5c1da)
---
bfd/ChangeLog | 7 +++++++
bfd/elfxx-x86.c | 28 ++++++++++++++++++++++------
ld/ChangeLog | 7 +++++++
ld/testsuite/ld-elf/dummy.s | 1 +
ld/testsuite/ld-elf/linux-x86.S | 28 ++++++++++++++++++++++++++++
ld/testsuite/ld-elf/linux-x86.exp | 2 +-
6 files changed, 66 insertions(+), 7 deletions(-)
create mode 100644 ld/testsuite/ld-elf/dummy.s
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 7ccfd25..2d8f7b6 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2588,7 +2588,6 @@ _bfd_x86_elf_link_setup_gnu_properties
prop->pr_kind = property_number;
}
else if (has_text
- && elf_properties (ebfd) == NULL
&& elf_tdata (info->output_bfd)->o->build_id.sec == NULL
&& !htab->elf.dynamic_sections_created
&& !info->traditional_format
@@ -2598,11 +2597,28 @@ _bfd_x86_elf_link_setup_gnu_properties
/* If the separate code program header is needed, make sure
that the first read-only PT_LOAD segment has no code by
adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
- prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_ISA_1_NEEDED,
- 4);
- prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
- prop->pr_kind = property_number;
+ elf_property_list *list;
+ bfd_boolean need_property = TRUE;
+
+ for (list = elf_properties (ebfd); list; list = list->next)
+ switch (list->property.pr_type)
+ {
+ case GNU_PROPERTY_STACK_SIZE:
+ case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
+ case GNU_PROPERTY_X86_ISA_1_NEEDED:
+ /* These properties won't be removed during merging. */
+ need_property = FALSE;
+ break;
+ }
+
+ if (need_property)
+ {
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+ }
}
/* Create the GNU property note section if needed. */
diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
new file mode 100644
index 0000000..403f980
--- /dev/null
+++ b/ld/testsuite/ld-elf/dummy.s
@@ -0,0 +1 @@
+# Dummy
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
index bdf40c6..d94abc1 100644
--- a/ld/testsuite/ld-elf/linux-x86.S
+++ b/ld/testsuite/ld-elf/linux-x86.S
@@ -61,3 +61,31 @@ syscall:
ret /* Return to caller. */
.size syscall, .-syscall
.section .note.GNU-stack,"",@progbits
+
+ .section ".note.gnu.property", "a"
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+2: .long 0xc0000002 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x2
+4:
+#ifdef __LP64__
+ .p2align 3
+#else
+ .p2align 2
+#endif
+5:
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
index 36217c6..f6f5a80 100644
--- a/ld/testsuite/ld-elf/linux-x86.exp
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -37,7 +37,7 @@ run_ld_link_exec_tests [list \
"Run PR ld/23428 test" \
"--no-dynamic-linker -z separate-code" \
"" \
- { linux-x86.S pr23428.c } \
+ { linux-x86.S pr23428.c dummy.s } \
"pr23428" \
"pass.out" \
"$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
--
2.9.3
@@ -0,0 +1,587 @@
From d55c3e36094f06bb1fb02f5eac19fdccf1d91f7e Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 8 Aug 2018 06:09:15 -0700
Subject: [PATCH] x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
corresponding x86 instruction set isn’t used. When merging properties
from 2 input files and one input file doesn't have the
GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
it neither. This patch removes the GNU_PROPERTY_X86_ISA_1_USED
property if an input file doesn't have it.
This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
requirement.
bfd/
PR ld/23486
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
(_bfd_x86_elf_link_setup_gnu_properties): Adding the
GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
GNU_PROPERTY_X86_ISA_1_USED, property.
ld/
PR ld/23486
* testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr23486a.d: New file.
* testsuite/ld-i386/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486a.d: Likewise.
* testsuite/ld-x86-64/pr23486a.s: Likewise.
* testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486b.s: Likewise.
* testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
(cherry picked from commit f7309df20c4e787041cedc4a6aced89c15259e54)
---
bfd/ChangeLog | 9 +++++++
bfd/elfxx-x86.c | 25 ++++++++++++++----
ld/ChangeLog | 32 +++++++++++++++++++++++
ld/testsuite/ld-i386/i386.exp | 2 ++
ld/testsuite/ld-i386/pr23486a.d | 10 +++++++
ld/testsuite/ld-i386/pr23486b.d | 10 +++++++
ld/testsuite/ld-i386/property-3.r | 1 -
ld/testsuite/ld-i386/property-4.r | 1 -
ld/testsuite/ld-i386/property-5.r | 1 -
ld/testsuite/ld-i386/property-x86-ibt3a.d | 5 ++--
ld/testsuite/ld-i386/property-x86-ibt3b.d | 5 ++--
ld/testsuite/ld-i386/property-x86-shstk3a.d | 5 ++--
ld/testsuite/ld-i386/property-x86-shstk3b.d | 5 ++--
ld/testsuite/ld-x86-64/pr23486a-x32.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486a.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486a.s | 30 +++++++++++++++++++++
ld/testsuite/ld-x86-64/pr23486b-x32.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486b.d | 10 +++++++
ld/testsuite/ld-x86-64/pr23486b.s | 30 +++++++++++++++++++++
ld/testsuite/ld-x86-64/property-3.r | 1 -
ld/testsuite/ld-x86-64/property-4.r | 1 -
ld/testsuite/ld-x86-64/property-5.r | 1 -
ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3a.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-ibt3b.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3a.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d | 5 ++--
ld/testsuite/ld-x86-64/property-x86-shstk3b.d | 5 ++--
ld/testsuite/ld-x86-64/x86-64.exp | 4 +++
31 files changed, 211 insertions(+), 47 deletions(-)
create mode 100644 ld/testsuite/ld-i386/pr23486a.d
create mode 100644 ld/testsuite/ld-i386/pr23486b.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a-x32.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486a.s
create mode 100644 ld/testsuite/ld-x86-64/pr23486b-x32.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486b.d
create mode 100644 ld/testsuite/ld-x86-64/pr23486b.s
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 2e4ff88..7ccfd25 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
switch (pr_type)
{
case GNU_PROPERTY_X86_ISA_1_USED:
+ if (aprop == NULL || bprop == NULL)
+ {
+ /* Only one of APROP and BPROP can be NULL. */
+ if (aprop != NULL)
+ {
+ /* Remove this property since the other input file doesn't
+ have it. */
+ aprop->pr_kind = property_remove;
+ updated = TRUE;
+ }
+ break;
+ }
+ goto or_property;
+
case GNU_PROPERTY_X86_ISA_1_NEEDED:
if (aprop != NULL && bprop != NULL)
{
+or_property:
number = aprop->u.number;
aprop->u.number = number | bprop->u.number;
- /* Remove the property if ISA bits are empty. */
+ /* Remove the property if all bits are empty. */
if (aprop->u.number == 0)
{
aprop->pr_kind = property_remove;
@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
{
if (aprop->u.number == 0)
{
- /* Remove APROP if ISA bits are empty. */
+ /* Remove APROP if all bits are empty. */
aprop->pr_kind = property_remove;
updated = TRUE;
}
}
else
{
- /* Return TRUE if APROP is NULL and ISA bits of BPROP
+ /* Return TRUE if APROP is NULL and all bits of BPROP
aren't empty to indicate that BPROP should be added
to ABFD. */
updated = bprop->u.number != 0;
@@ -2582,9 +2597,9 @@ _bfd_x86_elf_link_setup_gnu_properties
{
/* If the separate code program header is needed, make sure
that the first read-only PT_LOAD segment has no code by
- adding a GNU_PROPERTY_X86_ISA_1_USED note. */
+ adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
prop = _bfd_elf_get_property (ebfd,
- GNU_PROPERTY_X86_ISA_1_USED,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
4);
prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
prop->pr_kind = property_number;
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 6d794fe..78dad02 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -462,6 +462,8 @@ run_dump_test "pr23189"
run_dump_test "pr23194"
run_dump_test "pr23372a"
run_dump_test "pr23372b"
+run_dump_test "pr23486a"
+run_dump_test "pr23486b"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
new file mode 100644
index 0000000..41a6dcf
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr23486a.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486a.s
+#source: ../ld-x86-64/pr23486b.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
new file mode 100644
index 0000000..08019b7
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr23486b.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486b.s
+#source: ../ld-x86-64/pr23486a.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
index 0ed91f5..d03203c 100644
--- a/ld/testsuite/ld-i386/property-3.r
+++ b/ld/testsuite/ld-i386/property-3.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: 586, SSE
x86 ISA needed: i486, 586
#pass
diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
index cb2bc15..da295eb 100644
--- a/ld/testsuite/ld-i386/property-4.r
+++ b/ld/testsuite/ld-i386/property-4.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
index 5529650..e414159 100644
--- a/ld/testsuite/ld-i386/property-5.r
+++ b/ld/testsuite/ld-i386/property-5.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
index 4bb35b0..0aedea1 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
index 418d58a..bd69ac6 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
index e261038..76d2a39 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
index 25f3d23..e770ecf 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: i486, 586, SSE2, SSE3
- x86 ISA needed: 586, SSE, SSE3, SSE4_1
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
new file mode 100644
index 0000000..6d9fa68
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
new file mode 100644
index 0000000..dc2b7bf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
new file mode 100644
index 0000000..a07d0c7
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486a.s
@@ -0,0 +1,30 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_ISA_1_USED */
+ .long 0xc0000000 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ .long 0xa
+3:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
new file mode 100644
index 0000000..0445e69
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d
@@ -0,0 +1,10 @@
+#source: pr23486b.s
+#source: pr23486a.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
new file mode 100644
index 0000000..dc2b7bf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b.d
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
new file mode 100644
index 0000000..c5167ee
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr23486b.s
@@ -0,0 +1,30 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_ISA_1_NEEDED */
+ .long 0xc0000001 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ .long 0x3
+3:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
index 0ed91f5..d03203c 100644
--- a/ld/testsuite/ld-x86-64/property-3.r
+++ b/ld/testsuite/ld-x86-64/property-3.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: 586, SSE
x86 ISA needed: i486, 586
#pass
diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
index cb2bc15..da295eb 100644
--- a/ld/testsuite/ld-x86-64/property-4.r
+++ b/ld/testsuite/ld-x86-64/property-4.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
index 5529650..e414159 100644
--- a/ld/testsuite/ld-x86-64/property-5.r
+++ b/ld/testsuite/ld-x86-64/property-5.r
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
Owner Data size Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA used: i486, 586, SSE
x86 ISA needed: i486, 586, SSE
#pass
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
index 011426f..4cec728 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
index 1b4229a..a8df49a 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
index 290ed6a..c112626 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
index 1142e03..f10dffd 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
index 819542d..0147a3c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
index 4c5d0e0..1f8c2dc 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
index ba181e0..7ca2539 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
index 5216f38..f66a40e 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
@@ -6,6 +6,5 @@
Displaying notes found in: .note.gnu.property
Owner Data size Description
- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- x86 ISA needed: i486, 586, SSE2, SSE3
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 6edb9e8..ae21e55 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -403,6 +403,10 @@ run_dump_test "pr23372a"
run_dump_test "pr23372a-x32"
run_dump_test "pr23372b"
run_dump_test "pr23372b-x32"
+run_dump_test "pr23486a"
+run_dump_test "pr23486a-x32"
+run_dump_test "pr23486b"
+run_dump_test "pr23486b-x32"
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
return
--
2.9.3
-65
View File
@@ -1,65 +0,0 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen binutils-x86_64
# Based on: main/binutils
pkgname="binutils-x86_64"
pkgver=2.31.1
pkgrel=0
pkgdesc="Tools necessary to build programs for x86_64 targets"
url="https://www.gnu.org/software/binutils/"
depends=""
makedepends_build=""
makedepends_host=""
makedepends="gettext libtool autoconf automake bison"
arch="armhf aarch64 x86"
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
subpackages=""
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
binutils-ld-fix-static-linking.patch
gold-mips.patch
"
builddir="$srcdir/binutils-$pkgver"
if [ "$CHOST" != "$CTARGET" ]; then
pkgname="binutils-$CTARGET_ARCH"
subpackages=""
sonameprefix="binutils:"
fi
# secfixes:
# 2.28-r1:
# - CVE-2017-7614
build() {
_target="$(arch_to_hostspec x86_64)"
cd "$builddir"
"$builddir"/configure \
--build="$CBUILD" \
--target=$_target \
--with-lib-path=/usr/lib \
--prefix=/usr \
--with-sysroot=/usr/$_target \
--enable-ld=default \
--enable-gold=yes \
--enable-plugins \
--enable-deterministic-archives \
--disable-multilib \
--disable-werror \
--disable-nls
make
}
package() {
cd "$builddir"
make install DESTDIR="$pkgdir"
# remove man, info folders
rm -rf "$pkgdir"/usr/share
}
sha512sums="b42954e6f49a0adcd2676bdd77dfb59bfc25cec8184b007521d1e2b1d5d0593b58639e3d9448d5a40fe024c3cea386a37743627d6bb16d502f52a4a32b9573bd binutils-2.31.1.tar.bz2
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
@@ -1,93 +0,0 @@
From d66deb71f1537e2e30dccdfda22eed5d46ec47eb Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Wed, 14 Mar 2018 22:09:33 +1030
Subject: [PATCH] PowerPC64 debian bug 886264, out-of-line save/restore
functions
This calculation in relocate_section
if (stub_entry->stub_type == ppc_stub_save_res)
relocation += (stub_sec->output_offset
+ stub_sec->output_section->vma
+ stub_sec->size - htab->sfpr->size
- htab->sfpr->output_offset
- htab->sfpr->output_section->vma);
to adjust from the original out-of-line save/restore function address
in sfpr to a copy at the end of stub_sec goes wrong when stub_sec is
padded, because the copy is no longer at the end of stub_sec. The
solution is to pad before copying sfpr, so the copy is always at the
end of stub_sec.
* elf64-ppc.c (sfpr_define): Adjust for stub_sec size having
sfpr size added before defining alias symbols.
(ppc64_elf_build_stubs): Add stub section padding before
copying sfpr contents and defining save/restore alias symbols.
(cherry picked from commit 7dda8d3cf3b089bb7e03c4cdbec827fc6a188c88)
---
bfd/ChangeLog | 9 +++++++++
bfd/elf64-ppc.c | 33 ++++++++++++++++++---------------
2 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 6fcdff0..039294f 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -6645,7 +6645,7 @@ sfpr_define (struct bfd_link_info *info,
{
s->root.type = bfd_link_hash_defined;
s->root.u.def.section = stub_sec;
- s->root.u.def.value = (stub_sec->size
+ s->root.u.def.value = (stub_sec->size - htab->sfpr->size
+ h->elf.root.u.def.value);
s->ref_regular = 1;
s->def_regular = 1;
@@ -13232,20 +13232,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
for (group = htab->group; group != NULL; group = group->next)
if (group->needs_save_res)
- {
- stub_sec = group->stub_sec;
- memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents,
- htab->sfpr->size);
- if (htab->params->emit_stub_syms)
- {
- unsigned int i;
-
- for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
- if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
- return FALSE;
- }
- stub_sec->size += htab->sfpr->size;
- }
+ group->stub_sec->size += htab->sfpr->size;
if (htab->relbrlt != NULL)
htab->relbrlt->reloc_count = 0;
@@ -13259,6 +13246,22 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
}
for (group = htab->group; group != NULL; group = group->next)
+ if (group->needs_save_res)
+ {
+ stub_sec = group->stub_sec;
+ memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size,
+ htab->sfpr->contents, htab->sfpr->size);
+ if (htab->params->emit_stub_syms)
+ {
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
+ if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
+ return FALSE;
+ }
+ }
+
+ for (group = htab->group; group != NULL; group = group->next)
if ((stub_sec = group->stub_sec) != NULL)
{
stub_sec_count += 1;
--
2.9.3
+3 -3
View File
@@ -2,8 +2,8 @@
# Generator: pmbootstrap aportgen busybox-static-aarch64
pkgname=busybox-static-aarch64
pkgver=1.28.4
pkgrel=2
pkgver=1.31.0
pkgrel=0
_arch="aarch64"
_mirror="http://dl-cdn.alpinelinux.org/alpine/"
@@ -26,4 +26,4 @@ package() {
rm .PKGINFO .SIGN.*
}
sha512sums="363f13a3041a65ee96c984f75e46e3b0af985de3ca312b109ee2fbcfea957a69fe75655d3138ca922f8e196fa97c56c7c8a387440962150874a2cc619f07e8b6 busybox-static-1.28.4-r2-aarch64.apk"
sha512sums="1b189b920f6a6163ef20128215c25f90f04169d0992ab25f6d1eaa26ae2bf435e0cf553db90bfcf681acbc31eb99d1c9df7ce61738e39355e4ff2c4e8f09e286 busybox-static-1.31.0-r0-aarch64.apk"
+3 -3
View File
@@ -2,8 +2,8 @@
# Generator: pmbootstrap aportgen busybox-static-armhf
pkgname=busybox-static-armhf
pkgver=1.28.4
pkgrel=2
pkgver=1.31.0
pkgrel=0
_arch="armhf"
_mirror="http://dl-cdn.alpinelinux.org/alpine/"
@@ -26,4 +26,4 @@ package() {
rm .PKGINFO .SIGN.*
}
sha512sums="e10a339969fee47103d567d4a24237371a13a8519c40c550e64c3129018ff0fbd3bea785391c921087631bf0857e4a2ac46862fd699052f6a0752fb6e5771024 busybox-static-1.28.4-r2-armhf.apk"
sha512sums="05645d2ffc8e3af2c17ebd7881c777e392e1bbaeaef2da0bbbb73d0045a218b00da54df99ac64570c4a3f1c6e1a43dfe5657b8b3d2ed69f52683d12c88d8d932 busybox-static-1.31.0-r0-armhf.apk"
+29
View File
@@ -0,0 +1,29 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen busybox-static-armv7
pkgname=busybox-static-armv7
pkgver=1.31.0
pkgrel=0
_arch="armv7"
_mirror="http://dl-cdn.alpinelinux.org/alpine/"
url="http://busybox.net"
license="GPL2"
arch="all"
options="!check !strip"
pkgdesc="Statically linked Busybox for $_arch"
_target="$(arch_to_hostspec $_arch)"
source="
busybox-static-$pkgver-r$pkgrel-$_arch.apk::$_mirror/edge/main/$_arch/busybox-static-$pkgver-r$pkgrel.apk
"
package() {
mkdir -p "$pkgdir/usr/$_target"
cd "$pkgdir/usr/$_target"
tar -xf $srcdir/busybox-static-$pkgver-r$pkgrel-$_arch.apk
rm .PKGINFO .SIGN.*
}
sha512sums="f2f11245bb9fb6056341c57c51185045309470c3de3a32150e716b6e28c12d87fe72faf69edcaffb73297d15af4928a07f8d2b29dd373dd86c9af7ba53165b30 busybox-static-1.31.0-r0-armv7.apk"
+12 -5
View File
@@ -4,8 +4,8 @@
# ccache, which can then cache the results.
pkgname=ccache-cross-symlinks
pkgver=1
pkgrel=4
pkgver=2
pkgrel=0
pkgdesc="Enable ccache for cross-compilers with symlinks"
url="https://ccache.samba.org/"
arch="noarch"
@@ -14,14 +14,21 @@ depends="ccache"
options="!check"
package() {
local _archs="armhf aarch64"
local _bins="c++ cc cpp g++ gcc"
# Keep in sync with pmb.config.build_device_architectures
local _archs="armhf armv7 aarch64 x86_64 x86"
local _bins="c++ cc cpp g++ gcc clang clang++"
mkdir -p "$pkgdir/usr/lib/ccache/bin"
cd "$pkgdir/usr/lib/ccache/bin"
for _arch in $_archs; do
if [ "$_arch" = "$CARCH" ]; then
continue
fi
_hostspec="$(arch_to_hostspec $_arch)"
for _bin in $_bins; do
ln -v -s /usr/bin/ccache ${_hostspec}-${_bin}
# Relative symlink, so it works with crossdirect (pointing to
# /native/usr/bin/ccache)
ln -v -s ../../../bin/ccache ${_hostspec}-${_bin}
done
done
}
+66
View File
@@ -0,0 +1,66 @@
# Wrapper for the "crossdirect" compilation method.
# pmbootstrap mounts the native chroot in the foreign arch (e.g. armhf) chroot
# as /native. This package gets installed into the native chroot, and creates
# wrappers like:
#
# /native/usr/lib/crossdirect/armhf/gcc
# -> /native/usr/bin/armv6-alpine-linux-muslgnueabihf-gcc
#
# When building packages in the armhf chroot, PATH will get prepended with
# "/native/usr/lib/crossdirect/armhf". The end game is of course invoking the
# cross compiler from the native chroot, running at native speed, whenever
# calling the compiler from the foreign arch chroot. See crossdirect.c for
# implementation details (llvm, fakeroot, rpath).
pkgname=crossdirect
pkgver=3
pkgrel=0
pkgdesc="Wrappers to launch native cross compilers in foreign chroots"
url="https://postmarketOS.org"
arch="all"
license="MIT"
options=""
source="crossdirect.c"
build() {
cd "$srcdir"
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64"
for _arch in $_archs; do
[ "$_arch" == "$CARCH" ] && continue
_hostspec="$(arch_to_hostspec $_arch)"
# Build with -Werror, because we maintain this short program. (If
# upstream is elsewhere, having -Werror is usually not desired.)
$CC -o "crossdirect-$_arch" \
-static \
-Werror \
-DHOSTSPEC="\"$_hostspec\"" \
crossdirect.c
done
}
package() {
# Architectures and binaries
_archs="x86_64 armhf armv7 aarch64"
_bins="c++ cc cpp g++ gcc clang clang++"
# Iterate over architectures
for _arch in $_archs; do
[ "$_arch" == "$CARCH" ] && continue
# Put arch-specific crossdirect wrapper in arch-specific bin folder
_bindir="$pkgdir/usr/lib/crossdirect/$_arch"
_hostspec="$(arch_to_hostspec $_arch)"
mkdir -p "$_bindir"
cd "$_bindir"
cp "$srcdir/crossdirect-$_arch" "./"
# Create compiler symlinks
for _bin in $_bins; do
ln -s "crossdirect-$_arch" "$_bin"
ln -s "crossdirect-$_arch" "$_hostspec-$_bin"
done
done
}
sha512sums="20b963322820de038257304c1eefa85767b78e242eda7459f06d70a1cfae5540a445aa7d5587024bf4d88a4bee28120ef9f5c2d24a648e71b542b9618318deb2 crossdirect.c"
+94
View File
@@ -0,0 +1,94 @@
// HOSTSPEC is defined at compile time, see APKBUILD
#include <errno.h>
#include <libgen.h>
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define NATIVE_BIN_DIR "/native/usr/lib/ccache/bin"
void exit_userfriendly()
{
fprintf(stderr, "Please report this at: https://gitlab.com/postmarketOS/pmaports/issues\n");
fprintf(stderr, "As a workaround, you can compile without crossdirect.\n");
fprintf(stderr, "See 'pmbootstrap -h' for related options.\n");
exit(1);
}
bool argv_has_arg(int argc, char **argv, const char *arg)
{
size_t arg_len = strlen(arg);
for (int i = 1; i < argc; i++) {
if (strlen(argv[i]) < arg_len)
continue;
if (!memcmp(argv[i], arg, arg_len))
return true;
}
return false;
}
int main(int argc, char **argv)
{
// we have a max of four extra args ("-target", "HOSTSPEC", "--sysroot=/", "-Wl,-rpath-link=/lib:/usr/lib"), plus one ending null
char *newargv[argc + 5];
char *executableName = basename(argv[0]);
char newExecutable[PATH_MAX];
bool isClang = (strcmp(executableName, "clang") == 0 || strcmp(executableName, "clang++") == 0);
bool startsWithHostSpec = (strncmp(HOSTSPEC, executableName, sizeof(HOSTSPEC) - 1) == 0);
// linker is involved: just use qemu binary (to avoid broken cross-ld, pmaports#227)
if (!argv_has_arg(argc, argv, "-c")) {
snprintf(newExecutable, sizeof(newExecutable), "/usr/bin/%s", executableName);
if (execv(newExecutable, argv) == -1) {
fprintf(stderr, "ERROR: crossdirect: failed to execute %s: %s\n", newExecutable, strerror(errno));
fprintf(stderr, "NOTE: this is a foreign arch binary that would run with qemu (linker is involved).\n");
exit_userfriendly();
}
}
if (isClang || startsWithHostSpec) {
snprintf(newExecutable, sizeof(newExecutable), NATIVE_BIN_DIR "/%s", executableName);
} else {
snprintf(newExecutable, sizeof(newExecutable), NATIVE_BIN_DIR "/" HOSTSPEC "-%s", executableName);
}
char **newArgsPtr = newargv;
*newArgsPtr++ = newExecutable;
if (isClang) {
*newArgsPtr++ = "-target";
*newArgsPtr++ = HOSTSPEC;
}
*newArgsPtr++ = "--sysroot=/";
memcpy(newArgsPtr, argv + 1, sizeof(char *) * (argc - 1));
newArgsPtr += (argc - 1);
*newArgsPtr = NULL;
// new arguments prepared; now setup environmental vars
char *env[] = { "LD_PRELOAD=",
"LD_LIBRARY_PATH=/native/lib:/native/usr/lib",
"CCACHE_PATH=/native/usr/bin",
NULL };
char *ldPreload = getenv("LD_PRELOAD");
if (ldPreload) {
if (strcmp(ldPreload, "/usr/lib/libfakeroot.so") == 0) {
env[0] = "LD_PRELOAD=/native/usr/lib/libfakeroot.so";
} else {
fprintf(stderr, "ERROR: crossdirect: can't handle LD_PRELOAD: %s\n", ldPreload);
exit_userfriendly();
}
}
if (execve(newExecutable, newargv, env) == -1) {
fprintf(stderr, "ERROR: crossdirect: failed to execute %s: %s\n", newExecutable, strerror(errno));
fprintf(stderr, "Maybe the target arch is missing in the ccache-cross-symlinks package?\n");
exit_userfriendly();
}
return 1;
}
@@ -0,0 +1,42 @@
From 65eb86f3e110998d30489df009d44b4bc1043adc Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH 02/12] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index ffbb7f82cf5..b0b890d2403 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.17.1
@@ -0,0 +1,194 @@
From 48c670d2678e0323d88eb72205e039f393cabe05 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 03/39] gcc: poison-system-directories
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Inappropriate [distribution: codesourcery]
---
gcc/common.opt | 4 ++++
gcc/config.in | 6 ++++++
gcc/configure | 16 ++++++++++++++++
gcc/configure.ac | 10 ++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.c | 2 ++
gcc/incpath.c | 19 +++++++++++++++++++
7 files changed, 66 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
index d6ef85928f3..7b29efe3882 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -679,6 +679,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index 5bccb408016..1c784a8276b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -194,6 +194,12 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index 5c345ce0fd7..cafd05fd150 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -953,6 +953,7 @@ with_system_zlib
enable_maintainer_mode
enable_link_mutex
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_libquadmath_support
@@ -1696,6 +1697,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
@@ -29715,6 +29718,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 65dbf1f2f80..dd5b38195ce 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -6341,6 +6341,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories]),,
+ [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 255149fcfb8..cb71b60fe3c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -303,6 +303,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
-Wparentheses -Wno-pedantic-ms-format @gol
-Wplacement-new -Wplacement-new=@var{n} @gol
+-Wno-poison-system-directories @gol
-Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol
-Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol
-Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol
@@ -5712,6 +5713,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@item -Wfloat-equal
@opindex Wfloat-equal
@opindex Wno-float-equal
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a716f708259..02b3cd39fc2 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1037,6 +1037,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %{L*} %(mfwrap) %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
diff --git a/gcc/incpath.c b/gcc/incpath.c
index b11c6a57939..e3b7a21966f 100644
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.17.0
@@ -0,0 +1,26 @@
From b693804c8dba92fea7beee98f0aa520853a0532b Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 22 Dec 2016 11:22:28 +0000
Subject: [PATCH 08/12] s390x muslldso
---
gcc/config/s390/linux.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 525c17c2c9f..2d4f4a0654e 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
+
#undef LINK_SPEC
#define LINK_SPEC \
"%{m31:-m elf_s390}%{m64:-m elf64_s390} \
--
2.17.1
@@ -0,0 +1,76 @@
From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Wed, 28 Feb 2018 00:54:05 +0000
Subject: [PATCH 10/12] ldbl128 config
---
gcc/configure | 13 +++++++++++++
gcc/configure.ac | 16 ++++++++++++++--
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/gcc/configure b/gcc/configure
index 6121e163259..07ff8597d48 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then :
withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128"
else
+ case "$target" in
+ s390*-*-linux-musl*)
+ gcc_cv_target_ldbl128=yes
+ ;;
+ powerpc*-*-linux-musl*)
+ gcc_cv_target_ldbl128=no
+ ;;
+ *)
+
if test $glibc_version_major -gt 2 \
|| ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then :
gcc_cv_target_ldbl128=yes
@@ -29320,6 +29329,10 @@ else
&& gcc_cv_target_ldbl128=yes
fi
+
+ ;;
+ esac
+
fi
;;
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b066cc609e1..6c15ed898c0 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5971,13 +5971,25 @@ case "$target" in
AC_ARG_WITH(long-double-128,
[AS_HELP_STRING([--with-long-double-128],
[use 128-bit long double by default])],
- gcc_cv_target_ldbl128="$with_long_double_128",
+ gcc_cv_target_ldbl128="$with_long_double_128", [
+ case "$target" in
+ s390*-*-linux-musl*)
+ gcc_cv_target_ldbl128=yes
+ ;;
+ powerpc*-*-linux-musl*)
+ gcc_cv_target_ldbl128=no
+ ;;
+ *)]
[GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [
[gcc_cv_target_ldbl128=no
grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
$target_header_dir/bits/wordsize.h > /dev/null 2>&1 \
&& gcc_cv_target_ldbl128=yes
- ]])])
+ ]])]
+ [
+ ;;
+ esac
+ ])
;;
esac
if test x$gcc_cv_target_ldbl128 = xyes; then
--
2.17.1
+138
View File
@@ -0,0 +1,138 @@
From a4aa319f7c19e564dced3daeb7222c9315af936c Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 18 Aug 2018 23:58:45 +0000
Subject: [PATCH 12/12] static-pie
in gcc-8 -static means static non-pie, even if -pie or -static-pie
are specified, -static-pie can be used to build static pie.
in musl toolchains -static -pie always meant static pie, so this
patch fixes the link specs accordingly, the new -static-pie is just
an alias to -static -pie.
---
gcc/common.opt | 4 ++--
gcc/config/gnu-user.h | 12 +++++-------
gcc/config/rs6000/sysv4.h | 11 +++++------
gcc/gcc.c | 6 +++---
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index b52ef0b38c8..0ce5857e01d 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -3197,11 +3197,11 @@ Driver
no-pie
Driver RejectNegative Negative(shared)
-Don't create a dynamically linked position independent executable.
+Don't create a position independent executable.
pie
Driver RejectNegative Negative(no-pie)
-Create a dynamically linked position independent executable.
+Create a position independent executable.
static-pie
Driver RejectNegative Negative(pie)
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 8620de3e42d..235328a2642 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -52,13 +52,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define GNU_USER_TARGET_STARTFILE_SPEC \
"%{shared:; \
pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \
- static:crt1.o%s; \
- static-pie:rcrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
" PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} \
crti.o%s \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -92,8 +91,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
fvtable-verify=std:vtv_end.o%s} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} \
crtn.o%s \
" CRTOFFLOADEND
@@ -133,7 +131,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} "
#endif
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index bb19d0dcd41..bb2a2324eb0 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -763,12 +763,12 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
#define STARTFILE_LINUX_SPEC \
"%{shared:; \
pg|p|profile:gcrt1.o%s; \
- static:crt1.o%s; \
- static-pie|" PIE_SPEC ":Scrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
+ " PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} \
%{mnewlib:ecrti.o%s;:crti.o%s} \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -781,8 +781,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
"%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
fvtable-verify=std:vtv_end.o%s} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} \
%{mnewlib:ecrtn.o%s;:crtn.o%s} \
" CRTOFFLOADEND
diff --git a/gcc/gcc.c b/gcc/gcc.c
index eb1610ba8b0..87560afb03c 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -900,7 +900,7 @@ proper position among the other output files. */
#define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC
#define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;"
#else
-#define PIE_SPEC "pie"
+#define PIE_SPEC "pie|static-pie"
#define FPIE1_SPEC "fpie"
#define NO_FPIE1_SPEC FPIE1_SPEC ":;"
#define FPIE2_SPEC "fPIE"
@@ -924,12 +924,12 @@ proper position among the other output files. */
#ifndef LINK_PIE_SPEC
#ifdef HAVE_LD_PIE
#ifndef LD_PIE_SPEC
-#define LD_PIE_SPEC "-pie"
+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic}"
#endif
#else
#define LD_PIE_SPEC ""
#endif
-#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
#endif
#ifndef LINK_BUILDID_SPEC
--
2.17.1
@@ -0,0 +1,25 @@
--- ./libgomp/configure.tgt.orig 2018-09-25 13:44:16.654561098 -0400
+++ ./libgomp/configure.tgt 2018-09-25 13:44:50.452688100 -0400
@@ -10,23 +10,6 @@
# XCFLAGS Add extra compile flags to use.
# XLDFLAGS Add extra link flags to use.
-# Optimize TLS usage by avoiding the overhead of dynamic allocation.
-if test $gcc_cv_have_tls = yes ; then
- case "${target}" in
-
- *-*-k*bsd*-gnu*)
- ;;
-
- *-*-linux* | *-*-gnu*)
- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
- ;;
-
- *-*-rtems*)
- XCFLAGS="${XCFLAGS} -ftls-model=local-exec"
- ;;
- esac
-fi
-
# Since we require POSIX threads, assume a POSIX system by default.
config_path="posix"
@@ -1,9 +1,25 @@
# DP: On linux targets pass --as-needed by default to the linker, but always
# DP: link the sanitizer libraries with --no-as-needed.
Index: b/gcc/gcc.c
===================================================================
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -568,8 +568,11 @@ proper position among the other output f
@@ -692,8 +692,11 @@ proper position among the other output f
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lasan " \
+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -710,8 +713,11 @@ proper position among the other output f
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
@@ -17,21 +33,53 @@
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -728,8 +734,11 @@ proper position among the other output f
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \
- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -llsan " \
+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -744,8 +753,11 @@ proper position among the other output f
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \
- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lubsan " \
+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
Index: b/gcc/config/gnu-user.h
===================================================================
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -124,13 +124,13 @@
@@ -161,15 +161,15 @@ see the files COPYING3 and COPYING.RUNTI
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
"%{static-libasan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBTSAN_EARLY_SPEC
#define LIBTSAN_EARLY_SPEC "%{static-libtsan:%{!shared:" \
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBLSAN_EARLY_SPEC
#define LIBLSAN_EARLY_SPEC "%{static-liblsan:%{!shared:" \
#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
"%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
@@ -40,7 +88,8 @@ Index: b/gcc/config/aarch64/aarch64-linux.h
===================================================================
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -36,5 +36,6 @@
@@ -35,6 +35,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
+ --as-needed \
@@ -77,7 +126,7 @@ Index: b/gcc/config/s390/linux.h
===================================================================
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -65,7 +65,7 @@ along with GCC; see the file COPYING3.
@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3.
#undef LINK_SPEC
#define LINK_SPEC \
@@ -90,26 +139,27 @@ Index: b/gcc/config/rs6000/linux64.h
===================================================================
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -466,12 +466,12 @@ extern int dot_symbols;
@@ -490,13 +490,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \
%(link_os_extra_spec32)"
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \
%(link_os_extra_spec64)"
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
Index: b/gcc/config/rs6000/sysv4.h
===================================================================
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -784,7 +784,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
@@ -811,7 +811,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
MUSL_DYNAMIC_LINKER)
@@ -122,7 +172,8 @@ Index: b/gcc/config/i386/gnu-user64.h
===================================================================
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -57,5 +57,6 @@ see the files COPYING3 and COPYING.RUNTI
@@ -56,6 +56,7 @@
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
%{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
%{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+ --as-needed \
@@ -141,7 +192,7 @@ Index: b/gcc/config/i386/gnu-user.h
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!static-pie: \
Index: b/gcc/config/alpha/linux-elf.h
===================================================================
--- a/gcc/config/alpha/linux-elf.h
@@ -151,7 +202,7 @@ Index: b/gcc/config/alpha/linux-elf.h
#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
%{shared:-shared} \
%{!shared: \
@@ -159,7 +210,8 @@ Index: b/gcc/config/arm/linux-elf.h
===================================================================
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -73,5 +73,6 @@
@@ -70,6 +70,7 @@
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
-X \
+ --as-needed \
@@ -178,64 +230,15 @@ Index: b/gcc/config/mips/gnu-user.h
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
Index: b/libjava/Makefile.am
Index: b/gcc/config/riscv/linux.h
===================================================================
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -627,14 +631,14 @@
rm .libs/libgcj_bc.so; \
mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
rm .libs/libgcj_bc.so.1; \
$(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -50,6 +50,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
## This rule creates the libgcj_bc library that is actually installed.
install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp)
$(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
- $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS)
+ $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) -Wl,--no-as-needed -lgcj
## Note that property_files is defined in sources.am.
propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files)))
@@ -762,7 +766,7 @@
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
$(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la;
Index: b/libjava/Makefile.in
===================================================================
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -10644,13 +10648,13 @@
rm .libs/libgcj_bc.so; \
mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
rm .libs/libgcj_bc.so.1; \
$(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp)
$(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
- $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS)
+ $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) -Wl,--no-as-needed -lgcj
$(propertyo_files): %.lo: classpath/resource/%
$(mkinstalldirs) `dirname $@`; \
@@ -12494,7 +12498,7 @@
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
@USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
-@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
@USE_LIBGCJ_BC_TRUE@ $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la;
#define LINK_SPEC "\
+-as-needed \
-melf" XLEN_SPEC "lriscv \
%{mno-relax:--no-relax} \
%{shared} \
@@ -1,43 +1,22 @@
Enable -Wformat and -Wformat-security by default.
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -412,7 +412,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ O
Warn about format strings that are not literals
--- a/gcc/c-family/c.opt 2016-03-23 18:51:56.000000000 +0100
+++ b/gcc/c-family/c.opt 2016-04-28 23:45:54.063351272 +0200
@@ -459,7 +459,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonlit
Warn about format strings that are not literals.
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
Warn about possible security problems with format functions
Warn about possible security problems with format functions.
Wformat-y2k
@@ -424,7 +424,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
Warn about zero-length formats
Wformat-signedness
@@ -475,7 +475,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_l
Warn about zero-length formats.
Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
Warn about printf/scanf/strftime/strfmon format string anomalies
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
Warn about printf/scanf/strftime/strfmon format string anomalies.
Wignored-qualifiers
--- a/gcc/doc/gcc.info
+++ b/gcc/doc/gcc.info
@@ -3451,6 +3451,8 @@ compiler warns that an unrecognized option is present.
'-Wno-format-contains-nul', '-Wno-format-extra-args', and
'-Wno-format-zero-length'. '-Wformat' is enabled by '-Wall'.
+ This option is enabled by default in Alpine Linux.
+
'-Wno-format-contains-nul'
If '-Wformat' is specified, do not warn about format strings
that contain NUL bytes.
@@ -3496,6 +3498,8 @@ compiler warns that an unrecognized option is present.
future warnings may be added to '-Wformat-security' that are
not included in '-Wformat-nonliteral'.)
+ This option is enabled by default in Alpine Linux.
+
'-Wformat-y2k'
If '-Wformat' is specified, also warn about 'strftime' formats
that may yield only a two-digit year.
@@ -1,25 +1,13 @@
Enable -Wtrampolines by default.
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -648,7 +648,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers
@@ -712,7 +712,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers.
Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated
Warn whenever a trampoline is generated.
Wtype-limits
--- a/gcc/doc/gcc.info
+++ b/gcc/doc/gcc.info
@@ -4021,6 +4021,8 @@ compiler warns that an unrecognized option is present.
and thus requires the stack to be made executable in order for the
program to work properly.
+ This warning is enabled by default in Gentoo.
+
'-Wfloat-equal'
Warn if floating-point values are used in equality comparisons.
@@ -0,0 +1,38 @@
Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding
Change the buffer size.
--- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200
+++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100
@@ -857,6 +857,12 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
#endif
+#ifdef ENABLE_DEFAULT_SSP
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
+#else
+#define NO_SSP_SPEC ""
+#endif
+
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -1131,7 +1148,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fprofile-generate*|coverage:\
%{!fprofile-update=singel:\
--- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200
+++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200
@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
DEFPARAM (PARAM_SSP_BUFFER_SIZE,
"ssp-buffer-size",
"The lower bound for a buffer to be considered for stack smashing protection.",
- 8, 1, 0)
+ 4, 1, 0)
DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING,
"min-size-for-stack-sharing",
+4 -3
View File
@@ -45,12 +45,13 @@ diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 11bb46e..4f47f7b 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,4 +3,4 @@
@@ -3,5 +3,5 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER
+HOST_LIBGCC2_CFLAGS += -mlong-double-80
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
2.8.1
+39 -149
View File
@@ -1,6 +1,6 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-aarch64
# Based on: main/gcc
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=aarch64
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
@@ -23,19 +23,19 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
pkgname="gcc-aarch64"
pkgver=6.4.0
pkgver=8.3.0
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname="gcc-aarch64"
pkgrel=8
pkgrel=0
pkgdesc="Stage2 cross-compiler for aarch64"
url="http://gcc.gnu.org"
arch="armhf x86_64 x86"
arch="x86_64"
license="GPL LGPL"
_gccrel=$pkgver-r$pkgrel
depends="isl binutils-aarch64"
depends="isl binutils-aarch64 mpc1"
makedepends_build="gcc g++ paxmark bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
subpackages="g++-aarch64:gpp"
@@ -44,7 +44,6 @@ replaces="libstdc++ binutils"
: ${LANG_CXX:=true}
: ${LANG_OBJC:=true}
: ${LANG_JAVA:=true}
: ${LANG_GO:=true}
: ${LANG_FORTRAN:=true}
: ${LANG_ADA:=true}
@@ -64,7 +63,6 @@ if [ "$CHOST" != "$CTARGET" ]; then
_builddir="$srcdir/build-cross-final"
fi
LANG_OBJC=false
LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
LIBGOMP=false
@@ -101,7 +99,6 @@ elif [ "$CBUILD" != "$CHOST" ]; then
# Languages that do not need bootstrapping
LANG_OBJC=false
LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
@@ -146,10 +143,6 @@ if $LANG_OBJC; then
subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc"
_languages="$_languages,objc"
fi
if $LANG_JAVA; then
subpackages="$subpackages libgcj::$CTARGET_ARCH gcc-java$_target:java"
_languages="$_languages,java"
fi
if $LANG_GO; then
subpackages="$subpackages libgo::$CTARGET_ARCH gcc-go$_target:go"
_languages="$_languages,go"
@@ -165,68 +158,47 @@ if $LANG_ADA; then
fi
makedepends="$makedepends_build $makedepends_host"
source="http://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
http://sourceware.org/pub/java/ecj-4.9.jar
001_all_default-ssp-strong.patch
source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
002_all_default-relro.patch
003_all_default-fortify-source.patch
005_all_default-as-needed.patch
gcc-as-needed-gold.patch
gcc-as-needed-push-pop.patch
011_all_default-warn-format-security.patch
012_all_default-warn-trampolines.patch
013_all_default-ssp-fix.patch
020_all_msgfmt-libstdc++-link.patch
050_all_libiberty-asprintf.patch
051_all_libiberty-pic.patch
053_all_libitm-no-fortify-source.patch
067_all_gcc-poison-system-directories.patch
090_all_pr55930-dependency-tracking.patch
0003-gcc-poison-system-directories.patch
201-cilkrts.patch
203-libgcc_s.patch
204-linux_libc_has_function.patch
205-nopie.patch
207-static-pie.patch
0002-posix_memalign.patch
0008-s390x-muslldso.patch
0010-ldbl128-config.patch
0012-static-pie.patch
libgcc-always-build-gcceh.a.patch
gcc-4.9-musl-fortify.patch
gcc-6.1-musl-libssp.patch
boehm-gc-musl.patch
gcc-pure64.patch
fix-gcj-stdgnu14-link.patch
fix-gcj-musl.patch
fix-gcj-iconv-musl.patch
gcc-4.8-build-args.patch
fix-cxxflags-passing.patch
ada-fixes.patch
ada-shared.patch
ada-musl.patch
ada-aarch64-multiarch.patch
libgnarl-musl.patch
300-main-gcc-add-musl-s390x-dynamic-linker.patch
310-build-gcj-s390x.patch
320-libffi-gnulinux.patch
fix-rs6000-pie.patch
fix-linux-header-use-in-libgcc.patch
gcc-pure64-mips.patch
ada-mips64.patch
0001-i386-Move-struct-ix86_frame-to-machine_function.patch
0002-i386-Use-reference-of-struct-ix86_frame-to-avoid-cop.patch
0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
0004-x86-Add-mindirect-branch.patch
0005-x86-Add-mfunction-return.patch
0006-x86-Add-mindirect-branch-register.patch
0007-x86-Add-V-register-operand-modifier.patch
0008-x86-Disallow-mindirect-branch-mfunction-return-with-.patch
0009-Use-INVALID_REGNUM-in-indirect-thunk-processing.patch
0010-i386-Pass-INVALID_REGNUM-as-invalid-register-number.patch
0011-i386-Update-mfunction-return-for-return-with-pop.patch
0012-i386-Add-TARGET_INDIRECT_BRANCH_REGISTER.patch
0013-i386-Don-t-generate-alias-for-function-return-thunk.patch
0016-invalid_tls_model.patch
"
# gcc-4.8-build-args.patch
# we build out-of-tree
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir=/usr/lib/gcc/${CTARGET}/$pkgver
@@ -240,7 +212,7 @@ prepare() {
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -F3 -i "$srcdir"/$i || _err="$_err $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
@@ -253,9 +225,6 @@ prepare() {
return 1
fi
# see http://gcc.gnu.org/ml/java/2008-04/msg00027.html
mv "$srcdir"/ecj-*.jar ecj.jar
echo ${pkgver} > gcc/BASE-VER
}
@@ -343,6 +312,7 @@ build() {
$_symvers \
--enable-__cxa_atexit \
--enable-default-pie \
--enable-default-ssp \
--enable-cloog-backend \
--enable-languages=$_languages \
$_arch_configure \
@@ -362,10 +332,9 @@ package() {
# we dont support gcj -static
# and saving 35MB is not bad.
find "$pkgdir" -name libgcj.a -o -name libgtkpeer.a \
-o -name libgjsmalsa.a -o -name libgcj-tools.a \
-o -name libjvm.a -o -name libgij.a -o -name libgcj_bc.a \
-o -name libjavamath.a \
find "$pkgdir" -name libgtkpeer.a \
-o -name libgjsmalsa.a -o \
-o -name libgij.a -o \
| xargs rm -f
# strip debug info from some static libs
@@ -376,11 +345,6 @@ package() {
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \
-a -type f`
if $LANG_JAVA; then
sed -i -e 's/lib: /&%{static:%eJava programs cannot be linked statically}/' \
"$pkgdir"/usr/lib/libgcj.spec
fi
if $LIBGOMP; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
fi
@@ -524,59 +488,6 @@ libgomp() {
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
}
java() {
pkgdesc="Java support for GCC"
depends="zlib-dev gcc=$_gccrel libgcj=$_gccrel"
paxmark -pm "$pkgdir"/$_gcclibexec/ecj1
mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/$_gcclibdir/
cd "$pkgdir"/usr/bin
mv gcj gcj-dbtool gjavah gcjh jcf-dump "$subpkgdir"/usr/bin/
cd "$pkgdir"
for i in $(find usr/ -name ecj1 -o -name jc1 -o -name jvgenmain); do
mkdir -p "$subpkgdir"/${i%/*}
mv "$pkgdir"/$i "$subpkgdir"/$i
done
for i in "$pkgdir"/usr/lib/libgcj*.so; do
if [ -L "$i" ]; then
mv "$i" "$subpkgdir"/usr/lib/
fi
done
mv "$pkgdir"/usr/lib/libgij.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgcj.spec "$subpkgdir"/$_gcclibdir/
}
libgcj() {
pkgdesc="Java runtime library for gcc"
# libgcj_bc.so moved from gcc-java to libgcj
replaces="gcc-java"
depends=
mkdir -p "$subpkgdir"/usr/bin
cd "$pkgdir"/usr/bin
paxmark -pmse "$pkgdir"/usr/bin/gij
mv aot-compile gappletviewer gc-analyze gij gjar gjarsigner gkeytool\
gnative2ascii gorbd grmic grmid grmiregistry gserialver \
gtnameserv jv-convert rebuild-gcj-db \
"$subpkgdir"/usr/bin/
cd "$pkgdir"
for i in $(find usr/lib -name jc1 -o -name jvgenmain); do
mkdir -p "$subpkgdir"/${i%/*}
mv "$pkgdir"/$i "$subpkgdir"/$i
done
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/gcj-* \
"$pkgdir"/usr/lib/libgcj_bc.so \
"$pkgdir"/usr/lib/libgcj*.so.* \
"$pkgdir"/usr/lib/libgij.so.* \
"$pkgdir"/usr/lib/logging.properties \
"$pkgdir"/usr/lib/security \
"$subpkgdir"/usr/lib/
mkdir -p "$subpkgdir"/usr/share/
mv "$pkgdir"/usr/share/java "$subpkgdir"/usr/share/
}
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
@@ -662,56 +573,35 @@ gnat() {
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
}
sha512sums="02c60e54527c7adf584798d5251f8a0b80c93d5deafce82501b2c28e6692e0bd783927bbfc4bc527a863c0cccc025150a34740a9e29badb02d4b48e56a8aba90 gcc-6.4.0.tar.xz
28f8c6fdbcb19e950b1d0bafb3bcc7a8cba87bc673aa6027cece116599cdee80f0cf5e95a1440544890239f5c754e8a93ab46d9daedd937faef445d7ea33b226 ecj-4.9.jar
a1335adc2fbee98e36c4437ff2587771b98ed4180726779020f65039498235626a411cdb0100dbd20cd19d12f0d94f9a21af179ff624676c28cead9d60598b5d 001_all_default-ssp-strong.patch
sha512sums="1811337ae3add9680cec64968a2509d085b6dc5b6783fc1e8c295e3e47416196fd1a3ad8dfe7e10be2276b4f62c357659ce2902f239f60a8648548231b4b5802 gcc-8.3.0.tar.xz
e36e95b81489163abd6fe9d58f7867bdca43e61143afacbfb17f4698c0b16ec5fd0061d8fab7b2ae615540bebd721c2e2227f80401b4e7fc253da9da62e6b513 002_all_default-relro.patch
f86466c62b8291fac46f9c250c7ad8fa5ab7b1cce2504442fd07ddc4543665b317ae28951f244e39aba29aeaf3fff252ec4f6a147aa16adb2b7aed747dd89188 003_all_default-fortify-source.patch
51282fea54c7e616367bbeb2479ba13fec6f24eb47bd04e2071907b3b36273b2ff24676f46ef8d22f241c8ab4857307861eee076eab66797c3a50a8ecaa1809a 005_all_default-as-needed.patch
3398386dd1e079d6545dd9799adc799c6b80e3984fac6899d0e1a7ee21b66d0c7e53cddf17a65d590c883db750f9f79aaedd857355a8b9f7fb9476c906237919 011_all_default-warn-format-security.patch
9adb0d2b9b67dd957df6c609b8714c7c078efb52cd88770905c37c67827be8fc83d1125037b9c29d77db21ce78756aa2bb0bacdb0b98d869ac126da76a298e21 012_all_default-warn-trampolines.patch
02b725b220e540077efef741e9d457f9e004fe53ae642a138e214875d076a60f7c2f27de0ed9a4225db2030fc9c3d2c5b0414c895b9eec0f5f48fad70e2fb029 005_all_default-as-needed.patch
6c9a5068f6eea8a85d297a3555b1d2333ffd4b9ddbfb7560a3e643f8577603871ca123373ef7f96e894225291d88f7bf575c7f8386bcfdd1dabcd7ba12598b65 gcc-as-needed-gold.patch
ab0df1862f1b645634e79b8101326ce53215eba39861a455cd145b81b5267a6a61bc6e76b32d53887a0a48873f7efc23e2c52cc04400c6afd89822f245cdbc77 gcc-as-needed-push-pop.patch
e026bf9f73ee254528423c6cabdfd7794960c567161581b7d4b7c61c45027e12a6efef79662d4288b9cbaecb4798f01af6a5b4a13b766c2d501444ac1846fd43 011_all_default-warn-format-security.patch
37de4cc9061bfe1963e6e6570e1a6bbfd58204bf90e0eef819882599a9a80ea28f3eb815c20c1f173dc25d4bd9971b7c7f7f9512d6f8f91f04de1e1175114d4d 012_all_default-warn-trampolines.patch
38a0fedeac3eebe4a6a957792ba520225cf42663c96a171cd168fdb6c91ffa9a56b80351f8238c5d03b78d3ae2a6539a54481fe4848b4a395e2c87f2ff7adc08 013_all_default-ssp-fix.patch
d35a3ac7e13a4446921a90e1ff3eec1079840c845f9d523c868e24ae21f94cf69ba041de5341ebef96432a6f57598e223381d4286e8fb8baaa25906707f29fbd 020_all_msgfmt-libstdc++-link.patch
840070a3c423e6206aaa6e63e1d9a0fcd6efd53626cd1240a193f0b60aa5d84216acc4a2a4fa8bce74549b07e6a316b01d638f20cea13dc62473491a302fb3d6 050_all_libiberty-asprintf.patch
0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 051_all_libiberty-pic.patch
e7a2eb1b1870e199d6fd753d065781575656fa12baa264f96c5d179689d88c31b8a3f92a5dae96088c05e96aa2bda138364ad7dbcc79e1819a102f192cbb7bab 053_all_libitm-no-fortify-source.patch
e87da18aa7ab92b02b06168658c63b42a6c73a08fad2a30f81ef6296100fdbe3c3a91548fd0cb24eaf591e862bb08e4b67249bc4b977b07da33523aee0c686bc 067_all_gcc-poison-system-directories.patch
4a328d1e1a56c20166307edcfa322068915784d9c08025b7f81cf69714da48fc266b6d34f77b9135c2f10da830d9df408276a1b78d1fd218637c2823506593c2 090_all_pr55930-dependency-tracking.patch
ef052d0c3c9642fcb5ed570069c5a49c8ef523c47ac8ce3f201a801766f72ae4ff7c3725a70ee66e52c0fb559621e35fe0cf5b88b901d71ceadd381f49653a08 201-cilkrts.patch
808e206f5e107084156fba333d4e091dcbd62f5d7756142bc292d4b0a52619f8c2aaca3617defc2f5b6552ba0439aebd33f4141329d88eab6ddf2dd637d92c08 203-libgcc_s.patch
fc0de05b36613b732a0222ea005c90653c6a40d6761b6894af2419272f4e74875f37e26af33a9b9940669ef89269c44c46d17ca5bcd54b5cd1176e5eaf2992c1 204-linux_libc_has_function.patch
3842bd2be3e53db34e59bfb2bd438b244fc3712055058b9e232e33345f0fab216256b79e364fbac335972dc599a1d74393704f0cd595f3f076dcc10883c85b28 0003-gcc-poison-system-directories.patch
d1c2d7ff7f673375dc7cd84ae9d8515853b5af6390c70bb763412c012101344e4ee1ce155151ce3fb6ba2b80af7ed42d697dbe1bf6fd6e7b2b9087a378c47c37 203-libgcc_s.patch
98473bcaa77903a223ca9b0d2087c0921b287a2816d308cc32c8fe009e6cbf5dd1ae7fba27794ab8d9c09e117fe534413d91a464d1218474fc123ce0adfdc2c1 205-nopie.patch
3287d5b443bea8ec64132bcabe869c738ae98ea8f1a86df1c5d18c927f8816edbfcefeefc47792dbbb2bcacf50319af00e01b3735d34525913b64350770ad453 207-static-pie.patch
6d84354e6df96d5ea244eb3bb5f044781796b88040b11c78fb6ee509e5aac19d46e0e92ca836e98e6495d9751f52439833b748efc419e4f5d5301fb549c4dcc9 0002-posix_memalign.patch
7f434a7350c9b06d0ae7cc18a569d813238483afa34b0801d112844a0dfe6164ae36b0416955fd4da7a8caa54672247f319a8ec7ce4b6a97a5f4e17ec083112a 0008-s390x-muslldso.patch
66085c5555e6b91b6874d1782d5a1dc0ab1792889f9400f48cde9483f82b51b9e3a5de1efbba21a19fc5e664334f2188d0c2bc988d42335efa26118b3c85cc7f 0010-ldbl128-config.patch
45d5bc11a89e5af77503ca06eec52d6d84e6fea0be021aaee1bcc39f8dd3c7b4baa4200cfa2b0688faa0f207d005db89c029eff32f362207aa3d2365b2f2363e 0012-static-pie.patch
d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch
600fe5098dc54edaa9808fd5717af9dec058953f9ad37d49cfba1db4f7e9a7a8f02019342f75157fc575946fa693259422184de27b7ecc8386d9f3ecc0f7cc5d gcc-4.9-musl-fortify.patch
dbe0ee917fc7668571722364ab7c806731e3a31e8bfa30b4941b28b16b877d2a32b4a3897ef533399a28f82d43cac9b28e92de0493f0e779046db56584e07fa4 gcc-6.1-musl-libssp.patch
bda845a6aa1854d2c883910b115f79ccfa93dfc2b5eac69a3a236d83eb34cadc140731d616ffc24698c7abc8878dd15f231bcc5119f1860e575a120b311706c7 boehm-gc-musl.patch
fa62556719449caec6b2b434355bfbcaa5ae55ffe017b3e1f827f66a2aae21b79c571ee7a4ce723ea69169bc3a6447e73650991a200cc372adf2f102677518d7 gcc-pure64.patch
2253941f3d19b6d08801d3782f5f5ed56c3b73fbc9d3561a8f01c702963ac4fab91599c686076e7081eb6a80c37ccd33591ae978996d6eee1dc0ce0f1c50259a fix-gcj-stdgnu14-link.patch
f89ddeb21bc8f97e6a850a6b70b4501a8f3e49a4bc8cc82897488decda5d98ad01cb7f6c8b392d452e9579924a523bc75da6e0648c1c976d42e40af48b10343b fix-gcj-musl.patch
54d67cc008b735e47771314171930c5d8b8f5f5dc97fcf4214824c105c808f3e75d22d5a4fdf5068ed0457fa0d46c60cfb442e276259a4a5e9b8722a027d18e6 fix-gcj-iconv-musl.patch
abe9aaf9aa956058d0386a4396a511d176a46bb3906b90e952383646cdc158cbeb0a5dc616a1ccb1ca7d49fd0b5e351532aa15a3b13362abbf1ca4266f54a687 gcc-4.8-build-args.patch
35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch
9016b257abd8fa981de44a49512e35db814d1cbb47c1a87cd31c12d4ae20b13e9e149fe41691a7ec3c95bbcfde8a79194a8d2eaf547ceade3a246fad67c47dd8 ada-fixes.patch
3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch
631d4bdef6d8bde34df7978bb53ec28c3c909cf1f87139e5f148138d0f09adc58b41ecf0148bbf50fb4bc916c411e9bf8a2b6c046c75c0e77d754d8c35bcd4d7 ada-musl.patch
fa44c8158111627aa0e91c43e7cc3aa38642c2041c96532dd4f0932dae4d6f92ea2850b683abcf10e7e120299d42ea6b69adc00002a514c76be8e39e99fa052b ada-aarch64-multiarch.patch
4b4a0ff306a8ef34ff6e3284fbfca869012164a47ba7cb099085c1dd03e6ca0cdd462f82710e08c9a02895adc7484e4c5eef17b5aa264cf5d978fe8ad78eea93 300-main-gcc-add-musl-s390x-dynamic-linker.patch
385bc2fa50204f678964e5148c6170f572701dab920fbec8301f505bda34d182cde0adb7da042fee71719e12fb59f59181897f9b1bb4f4716ff59aad46ca1998 310-build-gcj-s390x.patch
50537add461714f44dc6a778e0c6d0e15d6a782591c8aff38d1fb559191ddac2b5ee14a43a3005b389fdf98d2e7468ff4e64c88ba024cf94f9fe0d9854b9e9c8 ada-musl.patch
a1f7750bc7b8b7d916a5dee34fcc736bd4fb249c96538b547d495794e6cfd49356aa3974506a15074b4cb58edd5d7e2868607c902dd003e8c464d5066fd4a575 libgnarl-musl.patch
f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch
01c71cd5881fc07ea3b9b980697e89b3ca0fe98502958ceafc3fca18b2604c844e2f457feab711baf8e03f00a5383b0e38aac7eb954034e306f43d4a37f165ed fix-rs6000-pie.patch
34a818d5be67eb1f34e44a80b83c28a9b9c17d37fc9fac639f490d6bb5b53ebe3318140d09c236a17d7c98f5a7792ae3d6cefccda8067a5e942d6305b9d1f87c fix-linux-header-use-in-libgcc.patch
86be3338cc9c33089608bc4c5e3b7918c4e500a345c338f361b18c342119a6ed69af5495d72950de7106d760f003528b46ad14795e805f8a3331e206dcb234e3 gcc-pure64-mips.patch
508f3bca214d88531d739d761d07affc953689b1540905c73420b34c246e1e6b72588cf89f0e1462752633f8ddc88da8c0238be2a1b6e1c213829cecee7924cf ada-mips64.patch
7912964bf3a985e9f870250d6e068f715582a4fb04270849d697a50e6aad0cf50df3d483ff80a0eb777d9940fd85526dd8d0b85da9bc71a5f2fbc07616263866 0001-i386-Move-struct-ix86_frame-to-machine_function.patch
baa27a4b912d8e27cd65a556b09cf45289a0e00e86dae3925f2923d1f3752080e80d80e159c996ef4156c4df1dfc3069114810a846672170ef3ae461ae0ab7e1 0002-i386-Use-reference-of-struct-ix86_frame-to-avoid-cop.patch
6701d15000bdd7c4c98a8fece8c814f5e4e73603eecf84fe4dc5ac10f79b3074afba7c2cc9e51d08b2abade1c34cb0c944c08ead7a85db94e97158c752fd1aac 0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
4e7e71ae57e232b29a6455ec977f60b47df1356eca0e85976ae2b4567c4c39541be9f10c30fe0085d69be5acdb61dff51d3e9d7af587c95d9cd2cb9ee307bd13 0004-x86-Add-mindirect-branch.patch
07f7fdbd9b4876f36ed7715a35a369dbaf1016f46c42a8935930cfcc9ea250de2dbe8113f077373ccce3c39cd728f957b6c4c7c6a7da299f160a4109f0bbe88d 0005-x86-Add-mfunction-return.patch
76ea947591e5241f8e6216ce337baaf1b5dfe3f02d8251f77a4acd70e2a5e7798e2867d70f452027f51a2e3baf1b5c94c3bffe9ef8e0a5ce24dc5d509adaf414 0006-x86-Add-mindirect-branch-register.patch
1c33c5cd34efb44d4fa0ace56e3d27ec802a66e03b08a29ab6122cbc70edbbe22313a34114437a41e09e0a6869af3cea3fb18f5bcb49db2f8e3f155026fe15f0 0007-x86-Add-V-register-operand-modifier.patch
5366e2cff0629304394bf35e9417c7faea6b6f3fc565d0410a17fdafcb2b30c9a218f8ca098274c09ca4c982ff5b178ad6df5bf464ec541aa086966915c7fe11 0008-x86-Disallow-mindirect-branch-mfunction-return-with-.patch
67c738b1f6afb09b6f0469c9cb282ab4d51fc8dd8e39df1cfdff8831788c1022081fccd446a482623f649898733aeaaa205cba0aa41162cdbdc74e57de9bb6eb 0009-Use-INVALID_REGNUM-in-indirect-thunk-processing.patch
b7b59f3203bf53168de2170b91738cd456f6ae205b3fe5bf8aacbaa8cc5624dd09c941ad8f1071d1ab8ab4fb5f69068a4bc792c0486fdec1ee2eb9c83688bb78 0010-i386-Pass-INVALID_REGNUM-as-invalid-register-number.patch
c53d4c5968865abb709ee8a9af9d57917d43ea3ba31ee8312f9e8f338e9b1b44babf5aa3414848da7267e5cf13a9261815eb9185dc153cbd41ee7ce5ea23d2d0 0011-i386-Update-mfunction-return-for-return-with-pop.patch
955080ba3e42cfe2f604e5dcef46aa6fca7c899c7808398947af655ff3b7954e30807ef85246986a5cc7db36dbc870db151e9fa8d8bc967b89ea56efdf64614c 0012-i386-Add-TARGET_INDIRECT_BRANCH_REGISTER.patch
3aae3a9cef8e8afe5a5433db8d9f410e1a2882481af01bb1d33232f987dbb74d7780c32be70b868bb391b3601b65ed3a16d777afea946f5eeaff72aa1e7fa3a9 0013-i386-Don-t-generate-alias-for-function-return-thunk.patch"
8039d4081b77332694bc10f898d5e4da0ece4ce7b0e219fedb2aab965126b6b0537d03ba8652341c9c35af07eef33e96b42cc02388f36d8027b9475d44f6b420 0016-invalid_tls_model.patch"
+103 -23
View File
@@ -1,7 +1,8 @@
diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
--- gcc-5.1.0/gcc.orig/ada/adaint.c 2015-02-20 11:48:57.000000000 +0000
+++ gcc-5.1.0/gcc/ada/adaint.c 2015-06-02 10:47:51.672767476 +0000
@@ -70,6 +70,11 @@
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 3b0aea9..ee0bb69 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -76,6 +76,11 @@
#include <sys/param.h>
#include <sys/pstat.h>
#endif
@@ -13,16 +14,15 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
#ifdef __PikeOS__
#define __BSD_VISIBLE 1
@@ -3057,8 +3062,6 @@ __gnat_lwp_self (void)
return (void *) syscall (__NR_gettid);
}
@@ -3255,7 +3260,6 @@ __gnat_lwp_self (void)
#endif
#if defined (__linux__)
-#include <sched.h>
-
/* glibc versions earlier than 2.7 do not define the routines to handle
dynamically allocated CPU sets. For these targets, we use the static
versions. */
@@ -3067,7 +3070,7 @@ __gnat_lwp_self (void)
@@ -3265,7 +3269,7 @@ __gnat_lwp_self (void)
/* Dynamic cpu sets */
@@ -31,7 +31,7 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
__gnat_cpu_alloc (size_t count)
{
return CPU_ALLOC (count);
@@ -3080,33 +3083,33 @@ __gnat_cpu_alloc_size (size_t count)
@@ -3278,33 +3282,33 @@ __gnat_cpu_alloc_size (size_t count)
}
void
@@ -73,7 +73,7 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
}
size_t
@@ -3116,23 +3119,23 @@ __gnat_cpu_alloc_size (size_t count ATTR
@@ -3314,23 +3318,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
}
void
@@ -101,11 +101,12 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
+ CPU_SET (cpu - 1, (cpu_set_t *) set);
}
#endif /* !CPU_ALLOC */
#endif /* linux */
diff -rup gcc-5.1.0/gcc.orig/ada/adaint.h gcc-5.1.0/gcc/ada/adaint.h
--- gcc-5.1.0/gcc.orig/ada/adaint.h 2015-01-27 17:20:27.000000000 +0000
+++ gcc-5.1.0/gcc/ada/adaint.h 2015-06-02 10:47:23.188910894 +0000
@@ -287,13 +287,11 @@ extern void *__gnat_lwp_self (voi
#endif /* __linux__ */
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 0d12f7e..a063b47 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -316,13 +316,11 @@ extern void *__gnat_lwp_self (void);
/* Routines for interface to required CPU set primitives */
@@ -123,15 +124,94 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.h gcc-5.1.0/gcc/ada/adaint.h
#endif
#if defined (_WIN32)
diff -rup gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in
--- gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in 2015-04-09 20:29:28.000000000 +0000
+++ gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in 2015-06-02 10:47:23.188910894 +0000
@@ -1910,7 +1910,7 @@ ifeq ($(strip $(filter-out powerpc% linu
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 7025f57..207b50d 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1108,13 +1108,6 @@ __gnat_setup_winsize (void *desc, int rows, int columns)
#include <stdio.h>
#include <stdlib.h>
-/* On some system termio is either absent or including it will disable termios
- (HP-UX) */
-#if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \
- && !defined (__rtems__) && !defined (__QNXNTO__)
-# include <termio.h>
-#endif
-
#include <sys/ioctl.h>
#include <termios.h>
#include <fcntl.h>
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index ebb955e..08cfbee 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -1028,7 +1028,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
g-sercom.adb<libgnat/g-sercom__linux.adb \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
s-linux.ads<libgnarl/s-linux.ads \
@@ -1545,7 +1545,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
@@ -1574,7 +1574,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
endif
# ARM linux, GNU eabi
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-linux.ads \
s-inmaop.adb<s-inmaop-posix.adb \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
@@ -1774,7 +1774,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ia64.ads
@@ -1871,7 +1871,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix.ads \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
system.ads<libgnat/system-linux-x86.ads
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 207b50d..bd3a02c 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1152,7 +1152,7 @@ __gnat_setup_winsize (void *desc, int rows, int columns)
#if defined (__APPLE__) || defined (BSD)
#define USE_OPENPTY
#elif defined (__linux__)
-#define USE_GETPT
+#define USE_POSIX_OPENPT
#elif defined (__sun__)
#define USE_CLONE_DEVICE "/dev/ptmx"
#elif defined (_AIX)
@@ -1201,8 +1201,8 @@ allocate_pty_desc (pty_desc **desc) {
int master_fd = -1;
char *slave_name = NULL;
-#ifdef USE_GETPT
- master_fd = getpt ();
+#ifdef USE_POSIX_OPENPT
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
#elif defined (USE_OPENPTY)
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
@@ -0,0 +1,58 @@
# DP: Use --push-state/--pop-state for gold as well when linking libtsan.
Index: b/gcc/gcc.c
===================================================================
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -693,10 +693,10 @@ proper position among the other output f
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libasan:--push-state --no-as-needed}" \
" -lasan " \
" %{static-libasan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libasan:--pop-state}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -714,10 +714,10 @@ proper position among the other output f
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libtsan:--push-state --no-as-needed}" \
" -ltsan " \
" %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libtsan:--pop-state}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -735,10 +735,10 @@ proper position among the other output f
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-liblsan:--push-state --no-as-needed}" \
" -llsan " \
" %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-liblsan:--pop-state}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -754,10 +754,10 @@ proper position among the other output f
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libubsan:--push-state --no-as-needed}" \
" -lubsan " \
" %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libubsan:--pop-state}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
@@ -0,0 +1,43 @@
From: Jakub Jelinek <jakub@redhat.com>
Subject: [PATCH] Use --push-state --as-needed and --pop-state instead of --as-needed and --no-as-needed for libgcc
As discussed, using --as-needed and --no-as-needed is dangerous, because
it results in --no-as-needed even for libraries after -lgcc_s, even when the
default is --as-needed or --as-needed has been specified earlier on the
command line.
If the linker supports --push-state/--pop-state, we should IMHO use it.
2018-04-11 Jakub Jelinek <jakub@redhat.com>
* configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
--push-state --as-needed and --pop-state instead of --as-needed and
--no-as-needed if ld supports it.
* configure: Regenerated.
Index: b/gcc/configure.ac
===================================================================
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5518,11 +5518,21 @@ if test $in_tree_ld = yes ; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
&& test $in_tree_ld_is_elf = yes; then
gcc_cv_ld_as_needed=yes
+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 28; then
+ gcc_cv_ld_as_needed_option='--push-state --as-needed'
+ gcc_cv_ld_no_as_needed_option='--pop-state'
+ fi
fi
elif test x$gcc_cv_ld != x; then
# Check if linker supports --as-needed and --no-as-needed options
if $gcc_cv_ld --help 2>&1 | grep as-needed > /dev/null; then
gcc_cv_ld_as_needed=yes
+ if $gcc_cv_ld --help 2>&1 | grep push-state > /dev/null; then
+ if $gcc_cv_ld --help 2>&1 | grep pop-state > /dev/null; then
+ gcc_cv_ld_as_needed_option='--push-state --as-needed'
+ gcc_cv_ld_no_as_needed_option='--pop-state'
+ fi
+ fi
fi
case "$target:$gnu_ld" in
*-*-solaris2*:no)
+120
View File
@@ -0,0 +1,120 @@
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
@@ -394,12 +394,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
- function pthread_rwlockattr_setkind_np
- (attr : access pthread_rwlockattr_t;
- pref : int) return int;
- pragma Import
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
-
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
@@ -464,11 +458,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
- function pthread_mutexattr_setprioceiling
- (attr : access pthread_mutexattr_t;
- prioceiling : int) return int;
- pragma Import (C, pthread_mutexattr_setprioceiling);
-
type struct_sched_param is record
sched_priority : int; -- scheduling priority
end record;
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
- function GNAT_has_cap_sys_nice return C.int;
- pragma Import
- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice");
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
- function Get_Ceiling_Support return Boolean;
- -- Get the value of the Ceiling_Support constant (see below).
- -- Note well: If this function or related code is modified, it should be
- -- tested by hand, because automated testing doesn't exercise it.
-
- -------------------------
- -- Get_Ceiling_Support --
- -------------------------
-
- function Get_Ceiling_Support return Boolean is
- Ceiling_Support : Boolean := False;
- begin
- if Locking_Policy /= 'C' then
- return False;
- end if;
-
- declare
- function geteuid return Integer;
- pragma Import (C, geteuid, "geteuid");
- Superuser : constant Boolean := geteuid = 0;
- Has_Cap : constant C.int := GNAT_has_cap_sys_nice;
- pragma Assert (Has_Cap in 0 | 1);
- begin
- Ceiling_Support := Superuser or else Has_Cap = 1;
- end;
-
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
+ pragma Warnings (Off, "formal parameter * is not referenced");
function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is
+ pragma Warnings (On, "formal parameter * is not referenced");
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
- if Ceiling_Support then
- Result := pthread_mutexattr_setprotocol
- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT);
- pragma Assert (Result = 0);
-
- Result := pthread_mutexattr_setprioceiling
- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio));
- pragma Assert (Result = 0);
-
- elsif Locking_Policy = 'I' then
+ if Locking_Policy = 'I' then
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
- Result := pthread_rwlockattr_setkind_np
- (RWlock_Attr'Access,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- pragma Assert (Result = 0);
-
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
pragma Assert (Result in 0 | ENOMEM);
+42
View File
@@ -0,0 +1,42 @@
From 65eb86f3e110998d30489df009d44b4bc1043adc Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH 02/12] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index ffbb7f82cf5..b0b890d2403 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.17.1
@@ -0,0 +1,194 @@
From 48c670d2678e0323d88eb72205e039f393cabe05 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 03/39] gcc: poison-system-directories
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Inappropriate [distribution: codesourcery]
---
gcc/common.opt | 4 ++++
gcc/config.in | 6 ++++++
gcc/configure | 16 ++++++++++++++++
gcc/configure.ac | 10 ++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.c | 2 ++
gcc/incpath.c | 19 +++++++++++++++++++
7 files changed, 66 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
index d6ef85928f3..7b29efe3882 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -679,6 +679,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index 5bccb408016..1c784a8276b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -194,6 +194,12 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index 5c345ce0fd7..cafd05fd150 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -953,6 +953,7 @@ with_system_zlib
enable_maintainer_mode
enable_link_mutex
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_libquadmath_support
@@ -1696,6 +1697,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
@@ -29715,6 +29718,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 65dbf1f2f80..dd5b38195ce 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -6341,6 +6341,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories]),,
+ [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 255149fcfb8..cb71b60fe3c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -303,6 +303,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
-Wparentheses -Wno-pedantic-ms-format @gol
-Wplacement-new -Wplacement-new=@var{n} @gol
+-Wno-poison-system-directories @gol
-Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol
-Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol
-Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol
@@ -5712,6 +5713,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@item -Wfloat-equal
@opindex Wfloat-equal
@opindex Wno-float-equal
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a716f708259..02b3cd39fc2 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1037,6 +1037,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %{L*} %(mfwrap) %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
diff --git a/gcc/incpath.c b/gcc/incpath.c
index b11c6a57939..e3b7a21966f 100644
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.17.0
+26
View File
@@ -0,0 +1,26 @@
From b693804c8dba92fea7beee98f0aa520853a0532b Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 22 Dec 2016 11:22:28 +0000
Subject: [PATCH 08/12] s390x muslldso
---
gcc/config/s390/linux.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 525c17c2c9f..2d4f4a0654e 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
+
#undef LINK_SPEC
#define LINK_SPEC \
"%{m31:-m elf_s390}%{m64:-m elf64_s390} \
--
2.17.1
+76
View File
@@ -0,0 +1,76 @@
From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Wed, 28 Feb 2018 00:54:05 +0000
Subject: [PATCH 10/12] ldbl128 config
---
gcc/configure | 13 +++++++++++++
gcc/configure.ac | 16 ++++++++++++++--
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/gcc/configure b/gcc/configure
index 6121e163259..07ff8597d48 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then :
withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128"
else
+ case "$target" in
+ s390*-*-linux-musl*)
+ gcc_cv_target_ldbl128=yes
+ ;;
+ powerpc*-*-linux-musl*)
+ gcc_cv_target_ldbl128=no
+ ;;
+ *)
+
if test $glibc_version_major -gt 2 \
|| ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then :
gcc_cv_target_ldbl128=yes
@@ -29320,6 +29329,10 @@ else
&& gcc_cv_target_ldbl128=yes
fi
+
+ ;;
+ esac
+
fi
;;
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b066cc609e1..6c15ed898c0 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5971,13 +5971,25 @@ case "$target" in
AC_ARG_WITH(long-double-128,
[AS_HELP_STRING([--with-long-double-128],
[use 128-bit long double by default])],
- gcc_cv_target_ldbl128="$with_long_double_128",
+ gcc_cv_target_ldbl128="$with_long_double_128", [
+ case "$target" in
+ s390*-*-linux-musl*)
+ gcc_cv_target_ldbl128=yes
+ ;;
+ powerpc*-*-linux-musl*)
+ gcc_cv_target_ldbl128=no
+ ;;
+ *)]
[GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [
[gcc_cv_target_ldbl128=no
grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
$target_header_dir/bits/wordsize.h > /dev/null 2>&1 \
&& gcc_cv_target_ldbl128=yes
- ]])])
+ ]])]
+ [
+ ;;
+ esac
+ ])
;;
esac
if test x$gcc_cv_target_ldbl128 = xyes; then
--
2.17.1
+138
View File
@@ -0,0 +1,138 @@
From a4aa319f7c19e564dced3daeb7222c9315af936c Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 18 Aug 2018 23:58:45 +0000
Subject: [PATCH 12/12] static-pie
in gcc-8 -static means static non-pie, even if -pie or -static-pie
are specified, -static-pie can be used to build static pie.
in musl toolchains -static -pie always meant static pie, so this
patch fixes the link specs accordingly, the new -static-pie is just
an alias to -static -pie.
---
gcc/common.opt | 4 ++--
gcc/config/gnu-user.h | 12 +++++-------
gcc/config/rs6000/sysv4.h | 11 +++++------
gcc/gcc.c | 6 +++---
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index b52ef0b38c8..0ce5857e01d 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -3197,11 +3197,11 @@ Driver
no-pie
Driver RejectNegative Negative(shared)
-Don't create a dynamically linked position independent executable.
+Don't create a position independent executable.
pie
Driver RejectNegative Negative(no-pie)
-Create a dynamically linked position independent executable.
+Create a position independent executable.
static-pie
Driver RejectNegative Negative(pie)
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 8620de3e42d..235328a2642 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -52,13 +52,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define GNU_USER_TARGET_STARTFILE_SPEC \
"%{shared:; \
pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \
- static:crt1.o%s; \
- static-pie:rcrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
" PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} \
crti.o%s \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -92,8 +91,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
fvtable-verify=std:vtv_end.o%s} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} \
crtn.o%s \
" CRTOFFLOADEND
@@ -133,7 +131,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} "
#endif
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index bb19d0dcd41..bb2a2324eb0 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -763,12 +763,12 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
#define STARTFILE_LINUX_SPEC \
"%{shared:; \
pg|p|profile:gcrt1.o%s; \
- static:crt1.o%s; \
- static-pie|" PIE_SPEC ":Scrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
+ " PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} \
%{mnewlib:ecrti.o%s;:crti.o%s} \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -781,8 +781,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
"%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
fvtable-verify=std:vtv_end.o%s} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} \
%{mnewlib:ecrtn.o%s;:crtn.o%s} \
" CRTOFFLOADEND
diff --git a/gcc/gcc.c b/gcc/gcc.c
index eb1610ba8b0..87560afb03c 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -900,7 +900,7 @@ proper position among the other output files. */
#define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC
#define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;"
#else
-#define PIE_SPEC "pie"
+#define PIE_SPEC "pie|static-pie"
#define FPIE1_SPEC "fpie"
#define NO_FPIE1_SPEC FPIE1_SPEC ":;"
#define FPIE2_SPEC "fPIE"
@@ -924,12 +924,12 @@ proper position among the other output files. */
#ifndef LINK_PIE_SPEC
#ifdef HAVE_LD_PIE
#ifndef LD_PIE_SPEC
-#define LD_PIE_SPEC "-pie"
+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic}"
#endif
#else
#define LD_PIE_SPEC ""
#endif
-#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
#endif
#ifndef LINK_BUILDID_SPEC
--
2.17.1
@@ -0,0 +1,25 @@
--- ./libgomp/configure.tgt.orig 2018-09-25 13:44:16.654561098 -0400
+++ ./libgomp/configure.tgt 2018-09-25 13:44:50.452688100 -0400
@@ -10,23 +10,6 @@
# XCFLAGS Add extra compile flags to use.
# XLDFLAGS Add extra link flags to use.
-# Optimize TLS usage by avoiding the overhead of dynamic allocation.
-if test $gcc_cv_have_tls = yes ; then
- case "${target}" in
-
- *-*-k*bsd*-gnu*)
- ;;
-
- *-*-linux* | *-*-gnu*)
- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
- ;;
-
- *-*-rtems*)
- XCFLAGS="${XCFLAGS} -ftls-model=local-exec"
- ;;
- esac
-fi
-
# Since we require POSIX threads, assume a POSIX system by default.
config_path="posix"
+79 -76
View File
@@ -1,9 +1,25 @@
# DP: On linux targets pass --as-needed by default to the linker, but always
# DP: link the sanitizer libraries with --no-as-needed.
Index: b/gcc/gcc.c
===================================================================
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -568,8 +568,11 @@ proper position among the other output f
@@ -692,8 +692,11 @@ proper position among the other output f
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lasan " \
+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -710,8 +713,11 @@ proper position among the other output f
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
@@ -17,21 +33,53 @@
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -728,8 +734,11 @@ proper position among the other output f
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \
- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -llsan " \
+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -744,8 +753,11 @@ proper position among the other output f
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \
- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " -lubsan " \
+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
Index: b/gcc/config/gnu-user.h
===================================================================
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -124,13 +124,13 @@
@@ -161,15 +161,15 @@ see the files COPYING3 and COPYING.RUNTI
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
"%{static-libasan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBTSAN_EARLY_SPEC
#define LIBTSAN_EARLY_SPEC "%{static-libtsan:%{!shared:" \
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
#undef LIBLSAN_EARLY_SPEC
#define LIBLSAN_EARLY_SPEC "%{static-liblsan:%{!shared:" \
#define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \
"%{static-liblsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \
- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}"
+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}"
@@ -40,7 +88,8 @@ Index: b/gcc/config/aarch64/aarch64-linux.h
===================================================================
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -36,5 +36,6 @@
@@ -35,6 +35,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
#define LINUX_TARGET_LINK_SPEC "%{h*} \
+ --as-needed \
@@ -77,7 +126,7 @@ Index: b/gcc/config/s390/linux.h
===================================================================
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -65,7 +65,7 @@ along with GCC; see the file COPYING3.
@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3.
#undef LINK_SPEC
#define LINK_SPEC \
@@ -90,26 +139,27 @@ Index: b/gcc/config/rs6000/linux64.h
===================================================================
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -466,12 +466,12 @@ extern int dot_symbols;
@@ -490,13 +490,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \
%(link_os_extra_spec32)"
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \
%(link_os_extra_spec64)"
%{!static-pie: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
Index: b/gcc/config/rs6000/sysv4.h
===================================================================
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -784,7 +784,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
@@ -811,7 +811,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
MUSL_DYNAMIC_LINKER)
@@ -122,7 +172,8 @@ Index: b/gcc/config/i386/gnu-user64.h
===================================================================
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -57,5 +57,6 @@ see the files COPYING3 and COPYING.RUNTI
@@ -56,6 +56,7 @@
"%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
%{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
%{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+ --as-needed \
@@ -141,7 +192,7 @@ Index: b/gcc/config/i386/gnu-user.h
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!static-pie: \
Index: b/gcc/config/alpha/linux-elf.h
===================================================================
--- a/gcc/config/alpha/linux-elf.h
@@ -151,7 +202,7 @@ Index: b/gcc/config/alpha/linux-elf.h
#define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
%{shared:-shared} \
%{!shared: \
@@ -159,7 +210,8 @@ Index: b/gcc/config/arm/linux-elf.h
===================================================================
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -73,5 +73,6 @@
@@ -70,6 +70,7 @@
%{rdynamic:-export-dynamic} \
%{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
-X \
+ --as-needed \
@@ -178,64 +230,15 @@ Index: b/gcc/config/mips/gnu-user.h
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
Index: b/libjava/Makefile.am
Index: b/gcc/config/riscv/linux.h
===================================================================
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -627,14 +631,14 @@
rm .libs/libgcj_bc.so; \
mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
rm .libs/libgcj_bc.so.1; \
$(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -50,6 +50,7 @@
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
## This rule creates the libgcj_bc library that is actually installed.
install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp)
$(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
- $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS)
+ $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) -Wl,--no-as-needed -lgcj
## Note that property_files is defined in sources.am.
propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files)))
@@ -762,7 +766,7 @@
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
$(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la;
Index: b/libjava/Makefile.in
===================================================================
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -10644,13 +10648,13 @@
rm .libs/libgcj_bc.so; \
mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
rm .libs/libgcj_bc.so.1; \
$(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp)
$(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
- $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS)
+ $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) -Wl,--no-as-needed -lgcj
$(propertyo_files): %.lo: classpath/resource/%
$(mkinstalldirs) `dirname $@`; \
@@ -12494,7 +12498,7 @@
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
@USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
-@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
@USE_LIBGCJ_BC_TRUE@ $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la;
#define LINK_SPEC "\
+-as-needed \
-melf" XLEN_SPEC "lriscv \
%{mno-relax:--no-relax} \
%{shared} \
@@ -1,43 +1,22 @@
Enable -Wformat and -Wformat-security by default.
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -412,7 +412,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ O
Warn about format strings that are not literals
--- a/gcc/c-family/c.opt 2016-03-23 18:51:56.000000000 +0100
+++ b/gcc/c-family/c.opt 2016-04-28 23:45:54.063351272 +0200
@@ -459,7 +459,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonlit
Warn about format strings that are not literals.
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
Warn about possible security problems with format functions
Warn about possible security problems with format functions.
Wformat-y2k
@@ -424,7 +424,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
Warn about zero-length formats
Wformat-signedness
@@ -475,7 +475,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_l
Warn about zero-length formats.
Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
Warn about printf/scanf/strftime/strfmon format string anomalies
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
Warn about printf/scanf/strftime/strfmon format string anomalies.
Wignored-qualifiers
--- a/gcc/doc/gcc.info
+++ b/gcc/doc/gcc.info
@@ -3451,6 +3451,8 @@ compiler warns that an unrecognized option is present.
'-Wno-format-contains-nul', '-Wno-format-extra-args', and
'-Wno-format-zero-length'. '-Wformat' is enabled by '-Wall'.
+ This option is enabled by default in Alpine Linux.
+
'-Wno-format-contains-nul'
If '-Wformat' is specified, do not warn about format strings
that contain NUL bytes.
@@ -3496,6 +3498,8 @@ compiler warns that an unrecognized option is present.
future warnings may be added to '-Wformat-security' that are
not included in '-Wformat-nonliteral'.)
+ This option is enabled by default in Alpine Linux.
+
'-Wformat-y2k'
If '-Wformat' is specified, also warn about 'strftime' formats
that may yield only a two-digit year.
@@ -1,25 +1,13 @@
Enable -Wtrampolines by default.
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -648,7 +648,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers
@@ -712,7 +712,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers.
Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated
Warn whenever a trampoline is generated.
Wtype-limits
--- a/gcc/doc/gcc.info
+++ b/gcc/doc/gcc.info
@@ -4021,6 +4021,8 @@ compiler warns that an unrecognized option is present.
and thus requires the stack to be made executable in order for the
program to work properly.
+ This warning is enabled by default in Gentoo.
+
'-Wfloat-equal'
Warn if floating-point values are used in equality comparisons.
@@ -0,0 +1,38 @@
Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding
Change the buffer size.
--- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200
+++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100
@@ -857,6 +857,12 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
#endif
+#ifdef ENABLE_DEFAULT_SSP
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
+#else
+#define NO_SSP_SPEC ""
+#endif
+
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -1131,7 +1148,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fprofile-generate*|coverage:\
%{!fprofile-update=singel:\
--- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200
+++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200
@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
DEFPARAM (PARAM_SSP_BUFFER_SIZE,
"ssp-buffer-size",
"The lower bound for a buffer to be considered for stack smashing protection.",
- 8, 1, 0)
+ 4, 1, 0)
DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING,
"min-size-for-stack-sharing",
+4 -3
View File
@@ -45,12 +45,13 @@ diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
index 11bb46e..4f47f7b 100644
--- a/libgcc/config/i386/t-linux
+++ b/libgcc/config/i386/t-linux
@@ -3,4 +3,4 @@
@@ -3,5 +3,5 @@
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER
+HOST_LIBGCC2_CFLAGS += -mlong-double-80
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
2.8.1
+39 -149
View File
@@ -1,6 +1,6 @@
# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen gcc-armhf
# Based on: main/gcc
# Based on: main/gcc (from Alpine)
CTARGET_ARCH=armhf
CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})"
@@ -23,19 +23,19 @@ CBUILDROOT="/"
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
pkgname="gcc-armhf"
pkgver=6.4.0
pkgver=8.3.0
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname="gcc-armhf"
pkgrel=8
pkgrel=0
pkgdesc="Stage2 cross-compiler for armhf"
url="http://gcc.gnu.org"
arch="aarch64 x86_64 x86"
arch="x86_64"
license="GPL LGPL"
_gccrel=$pkgver-r$pkgrel
depends="isl binutils-armhf"
depends="isl binutils-armhf mpc1"
makedepends_build="gcc g++ paxmark bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
subpackages="g++-armhf:gpp"
@@ -44,7 +44,6 @@ replaces="libstdc++ binutils"
: ${LANG_CXX:=true}
: ${LANG_OBJC:=true}
: ${LANG_JAVA:=true}
: ${LANG_GO:=true}
: ${LANG_FORTRAN:=true}
: ${LANG_ADA:=true}
@@ -64,7 +63,6 @@ if [ "$CHOST" != "$CTARGET" ]; then
_builddir="$srcdir/build-cross-final"
fi
LANG_OBJC=false
LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
LIBGOMP=false
@@ -101,7 +99,6 @@ elif [ "$CBUILD" != "$CHOST" ]; then
# Languages that do not need bootstrapping
LANG_OBJC=false
LANG_JAVA=false
LANG_GO=false
LANG_FORTRAN=false
@@ -146,10 +143,6 @@ if $LANG_OBJC; then
subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc"
_languages="$_languages,objc"
fi
if $LANG_JAVA; then
subpackages="$subpackages libgcj::$CTARGET_ARCH gcc-java$_target:java"
_languages="$_languages,java"
fi
if $LANG_GO; then
subpackages="$subpackages libgo::$CTARGET_ARCH gcc-go$_target:go"
_languages="$_languages,go"
@@ -165,68 +158,47 @@ if $LANG_ADA; then
fi
makedepends="$makedepends_build $makedepends_host"
source="http://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
http://sourceware.org/pub/java/ecj-4.9.jar
001_all_default-ssp-strong.patch
source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
002_all_default-relro.patch
003_all_default-fortify-source.patch
005_all_default-as-needed.patch
gcc-as-needed-gold.patch
gcc-as-needed-push-pop.patch
011_all_default-warn-format-security.patch
012_all_default-warn-trampolines.patch
013_all_default-ssp-fix.patch
020_all_msgfmt-libstdc++-link.patch
050_all_libiberty-asprintf.patch
051_all_libiberty-pic.patch
053_all_libitm-no-fortify-source.patch
067_all_gcc-poison-system-directories.patch
090_all_pr55930-dependency-tracking.patch
0003-gcc-poison-system-directories.patch
201-cilkrts.patch
203-libgcc_s.patch
204-linux_libc_has_function.patch
205-nopie.patch
207-static-pie.patch
0002-posix_memalign.patch
0008-s390x-muslldso.patch
0010-ldbl128-config.patch
0012-static-pie.patch
libgcc-always-build-gcceh.a.patch
gcc-4.9-musl-fortify.patch
gcc-6.1-musl-libssp.patch
boehm-gc-musl.patch
gcc-pure64.patch
fix-gcj-stdgnu14-link.patch
fix-gcj-musl.patch
fix-gcj-iconv-musl.patch
gcc-4.8-build-args.patch
fix-cxxflags-passing.patch
ada-fixes.patch
ada-shared.patch
ada-musl.patch
ada-aarch64-multiarch.patch
libgnarl-musl.patch
300-main-gcc-add-musl-s390x-dynamic-linker.patch
310-build-gcj-s390x.patch
320-libffi-gnulinux.patch
fix-rs6000-pie.patch
fix-linux-header-use-in-libgcc.patch
gcc-pure64-mips.patch
ada-mips64.patch
0001-i386-Move-struct-ix86_frame-to-machine_function.patch
0002-i386-Use-reference-of-struct-ix86_frame-to-avoid-cop.patch
0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
0004-x86-Add-mindirect-branch.patch
0005-x86-Add-mfunction-return.patch
0006-x86-Add-mindirect-branch-register.patch
0007-x86-Add-V-register-operand-modifier.patch
0008-x86-Disallow-mindirect-branch-mfunction-return-with-.patch
0009-Use-INVALID_REGNUM-in-indirect-thunk-processing.patch
0010-i386-Pass-INVALID_REGNUM-as-invalid-register-number.patch
0011-i386-Update-mfunction-return-for-return-with-pop.patch
0012-i386-Add-TARGET_INDIRECT_BRANCH_REGISTER.patch
0013-i386-Don-t-generate-alias-for-function-return-thunk.patch
0016-invalid_tls_model.patch
"
# gcc-4.8-build-args.patch
# we build out-of-tree
_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver}
_gcclibdir=/usr/lib/gcc/${CTARGET}/$pkgver
@@ -240,7 +212,7 @@ prepare() {
case "$i" in
*.patch)
msg "Applying $i"
patch -p1 -F3 -i "$srcdir"/$i || _err="$_err $i"
patch -p1 -i "$srcdir"/$i || _err="$_err $i"
;;
esac
done
@@ -253,9 +225,6 @@ prepare() {
return 1
fi
# see http://gcc.gnu.org/ml/java/2008-04/msg00027.html
mv "$srcdir"/ecj-*.jar ecj.jar
echo ${pkgver} > gcc/BASE-VER
}
@@ -343,6 +312,7 @@ build() {
$_symvers \
--enable-__cxa_atexit \
--enable-default-pie \
--enable-default-ssp \
--enable-cloog-backend \
--enable-languages=$_languages \
$_arch_configure \
@@ -362,10 +332,9 @@ package() {
# we dont support gcj -static
# and saving 35MB is not bad.
find "$pkgdir" -name libgcj.a -o -name libgtkpeer.a \
-o -name libgjsmalsa.a -o -name libgcj-tools.a \
-o -name libjvm.a -o -name libgij.a -o -name libgcj_bc.a \
-o -name libjavamath.a \
find "$pkgdir" -name libgtkpeer.a \
-o -name libgjsmalsa.a -o \
-o -name libgij.a -o \
| xargs rm -f
# strip debug info from some static libs
@@ -376,11 +345,6 @@ package() {
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \
-a -type f`
if $LANG_JAVA; then
sed -i -e 's/lib: /&%{static:%eJava programs cannot be linked statically}/' \
"$pkgdir"/usr/lib/libgcj.spec
fi
if $LIBGOMP; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
fi
@@ -524,59 +488,6 @@ libgomp() {
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/
}
java() {
pkgdesc="Java support for GCC"
depends="zlib-dev gcc=$_gccrel libgcj=$_gccrel"
paxmark -pm "$pkgdir"/$_gcclibexec/ecj1
mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/$_gcclibdir/
cd "$pkgdir"/usr/bin
mv gcj gcj-dbtool gjavah gcjh jcf-dump "$subpkgdir"/usr/bin/
cd "$pkgdir"
for i in $(find usr/ -name ecj1 -o -name jc1 -o -name jvgenmain); do
mkdir -p "$subpkgdir"/${i%/*}
mv "$pkgdir"/$i "$subpkgdir"/$i
done
for i in "$pkgdir"/usr/lib/libgcj*.so; do
if [ -L "$i" ]; then
mv "$i" "$subpkgdir"/usr/lib/
fi
done
mv "$pkgdir"/usr/lib/libgij.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libgcj.spec "$subpkgdir"/$_gcclibdir/
}
libgcj() {
pkgdesc="Java runtime library for gcc"
# libgcj_bc.so moved from gcc-java to libgcj
replaces="gcc-java"
depends=
mkdir -p "$subpkgdir"/usr/bin
cd "$pkgdir"/usr/bin
paxmark -pmse "$pkgdir"/usr/bin/gij
mv aot-compile gappletviewer gc-analyze gij gjar gjarsigner gkeytool\
gnative2ascii gorbd grmic grmid grmiregistry gserialver \
gtnameserv jv-convert rebuild-gcj-db \
"$subpkgdir"/usr/bin/
cd "$pkgdir"
for i in $(find usr/lib -name jc1 -o -name jvgenmain); do
mkdir -p "$subpkgdir"/${i%/*}
mv "$pkgdir"/$i "$subpkgdir"/$i
done
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/gcj-* \
"$pkgdir"/usr/lib/libgcj_bc.so \
"$pkgdir"/usr/lib/libgcj*.so.* \
"$pkgdir"/usr/lib/libgij.so.* \
"$pkgdir"/usr/lib/logging.properties \
"$pkgdir"/usr/lib/security \
"$subpkgdir"/usr/lib/
mkdir -p "$subpkgdir"/usr/share/
mv "$pkgdir"/usr/share/java "$subpkgdir"/usr/share/
}
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
@@ -662,56 +573,35 @@ gnat() {
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
}
sha512sums="02c60e54527c7adf584798d5251f8a0b80c93d5deafce82501b2c28e6692e0bd783927bbfc4bc527a863c0cccc025150a34740a9e29badb02d4b48e56a8aba90 gcc-6.4.0.tar.xz
28f8c6fdbcb19e950b1d0bafb3bcc7a8cba87bc673aa6027cece116599cdee80f0cf5e95a1440544890239f5c754e8a93ab46d9daedd937faef445d7ea33b226 ecj-4.9.jar
a1335adc2fbee98e36c4437ff2587771b98ed4180726779020f65039498235626a411cdb0100dbd20cd19d12f0d94f9a21af179ff624676c28cead9d60598b5d 001_all_default-ssp-strong.patch
sha512sums="1811337ae3add9680cec64968a2509d085b6dc5b6783fc1e8c295e3e47416196fd1a3ad8dfe7e10be2276b4f62c357659ce2902f239f60a8648548231b4b5802 gcc-8.3.0.tar.xz
e36e95b81489163abd6fe9d58f7867bdca43e61143afacbfb17f4698c0b16ec5fd0061d8fab7b2ae615540bebd721c2e2227f80401b4e7fc253da9da62e6b513 002_all_default-relro.patch
f86466c62b8291fac46f9c250c7ad8fa5ab7b1cce2504442fd07ddc4543665b317ae28951f244e39aba29aeaf3fff252ec4f6a147aa16adb2b7aed747dd89188 003_all_default-fortify-source.patch
51282fea54c7e616367bbeb2479ba13fec6f24eb47bd04e2071907b3b36273b2ff24676f46ef8d22f241c8ab4857307861eee076eab66797c3a50a8ecaa1809a 005_all_default-as-needed.patch
3398386dd1e079d6545dd9799adc799c6b80e3984fac6899d0e1a7ee21b66d0c7e53cddf17a65d590c883db750f9f79aaedd857355a8b9f7fb9476c906237919 011_all_default-warn-format-security.patch
9adb0d2b9b67dd957df6c609b8714c7c078efb52cd88770905c37c67827be8fc83d1125037b9c29d77db21ce78756aa2bb0bacdb0b98d869ac126da76a298e21 012_all_default-warn-trampolines.patch
02b725b220e540077efef741e9d457f9e004fe53ae642a138e214875d076a60f7c2f27de0ed9a4225db2030fc9c3d2c5b0414c895b9eec0f5f48fad70e2fb029 005_all_default-as-needed.patch
6c9a5068f6eea8a85d297a3555b1d2333ffd4b9ddbfb7560a3e643f8577603871ca123373ef7f96e894225291d88f7bf575c7f8386bcfdd1dabcd7ba12598b65 gcc-as-needed-gold.patch
ab0df1862f1b645634e79b8101326ce53215eba39861a455cd145b81b5267a6a61bc6e76b32d53887a0a48873f7efc23e2c52cc04400c6afd89822f245cdbc77 gcc-as-needed-push-pop.patch
e026bf9f73ee254528423c6cabdfd7794960c567161581b7d4b7c61c45027e12a6efef79662d4288b9cbaecb4798f01af6a5b4a13b766c2d501444ac1846fd43 011_all_default-warn-format-security.patch
37de4cc9061bfe1963e6e6570e1a6bbfd58204bf90e0eef819882599a9a80ea28f3eb815c20c1f173dc25d4bd9971b7c7f7f9512d6f8f91f04de1e1175114d4d 012_all_default-warn-trampolines.patch
38a0fedeac3eebe4a6a957792ba520225cf42663c96a171cd168fdb6c91ffa9a56b80351f8238c5d03b78d3ae2a6539a54481fe4848b4a395e2c87f2ff7adc08 013_all_default-ssp-fix.patch
d35a3ac7e13a4446921a90e1ff3eec1079840c845f9d523c868e24ae21f94cf69ba041de5341ebef96432a6f57598e223381d4286e8fb8baaa25906707f29fbd 020_all_msgfmt-libstdc++-link.patch
840070a3c423e6206aaa6e63e1d9a0fcd6efd53626cd1240a193f0b60aa5d84216acc4a2a4fa8bce74549b07e6a316b01d638f20cea13dc62473491a302fb3d6 050_all_libiberty-asprintf.patch
0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 051_all_libiberty-pic.patch
e7a2eb1b1870e199d6fd753d065781575656fa12baa264f96c5d179689d88c31b8a3f92a5dae96088c05e96aa2bda138364ad7dbcc79e1819a102f192cbb7bab 053_all_libitm-no-fortify-source.patch
e87da18aa7ab92b02b06168658c63b42a6c73a08fad2a30f81ef6296100fdbe3c3a91548fd0cb24eaf591e862bb08e4b67249bc4b977b07da33523aee0c686bc 067_all_gcc-poison-system-directories.patch
4a328d1e1a56c20166307edcfa322068915784d9c08025b7f81cf69714da48fc266b6d34f77b9135c2f10da830d9df408276a1b78d1fd218637c2823506593c2 090_all_pr55930-dependency-tracking.patch
ef052d0c3c9642fcb5ed570069c5a49c8ef523c47ac8ce3f201a801766f72ae4ff7c3725a70ee66e52c0fb559621e35fe0cf5b88b901d71ceadd381f49653a08 201-cilkrts.patch
808e206f5e107084156fba333d4e091dcbd62f5d7756142bc292d4b0a52619f8c2aaca3617defc2f5b6552ba0439aebd33f4141329d88eab6ddf2dd637d92c08 203-libgcc_s.patch
fc0de05b36613b732a0222ea005c90653c6a40d6761b6894af2419272f4e74875f37e26af33a9b9940669ef89269c44c46d17ca5bcd54b5cd1176e5eaf2992c1 204-linux_libc_has_function.patch
3842bd2be3e53db34e59bfb2bd438b244fc3712055058b9e232e33345f0fab216256b79e364fbac335972dc599a1d74393704f0cd595f3f076dcc10883c85b28 0003-gcc-poison-system-directories.patch
d1c2d7ff7f673375dc7cd84ae9d8515853b5af6390c70bb763412c012101344e4ee1ce155151ce3fb6ba2b80af7ed42d697dbe1bf6fd6e7b2b9087a378c47c37 203-libgcc_s.patch
98473bcaa77903a223ca9b0d2087c0921b287a2816d308cc32c8fe009e6cbf5dd1ae7fba27794ab8d9c09e117fe534413d91a464d1218474fc123ce0adfdc2c1 205-nopie.patch
3287d5b443bea8ec64132bcabe869c738ae98ea8f1a86df1c5d18c927f8816edbfcefeefc47792dbbb2bcacf50319af00e01b3735d34525913b64350770ad453 207-static-pie.patch
6d84354e6df96d5ea244eb3bb5f044781796b88040b11c78fb6ee509e5aac19d46e0e92ca836e98e6495d9751f52439833b748efc419e4f5d5301fb549c4dcc9 0002-posix_memalign.patch
7f434a7350c9b06d0ae7cc18a569d813238483afa34b0801d112844a0dfe6164ae36b0416955fd4da7a8caa54672247f319a8ec7ce4b6a97a5f4e17ec083112a 0008-s390x-muslldso.patch
66085c5555e6b91b6874d1782d5a1dc0ab1792889f9400f48cde9483f82b51b9e3a5de1efbba21a19fc5e664334f2188d0c2bc988d42335efa26118b3c85cc7f 0010-ldbl128-config.patch
45d5bc11a89e5af77503ca06eec52d6d84e6fea0be021aaee1bcc39f8dd3c7b4baa4200cfa2b0688faa0f207d005db89c029eff32f362207aa3d2365b2f2363e 0012-static-pie.patch
d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch
600fe5098dc54edaa9808fd5717af9dec058953f9ad37d49cfba1db4f7e9a7a8f02019342f75157fc575946fa693259422184de27b7ecc8386d9f3ecc0f7cc5d gcc-4.9-musl-fortify.patch
dbe0ee917fc7668571722364ab7c806731e3a31e8bfa30b4941b28b16b877d2a32b4a3897ef533399a28f82d43cac9b28e92de0493f0e779046db56584e07fa4 gcc-6.1-musl-libssp.patch
bda845a6aa1854d2c883910b115f79ccfa93dfc2b5eac69a3a236d83eb34cadc140731d616ffc24698c7abc8878dd15f231bcc5119f1860e575a120b311706c7 boehm-gc-musl.patch
fa62556719449caec6b2b434355bfbcaa5ae55ffe017b3e1f827f66a2aae21b79c571ee7a4ce723ea69169bc3a6447e73650991a200cc372adf2f102677518d7 gcc-pure64.patch
2253941f3d19b6d08801d3782f5f5ed56c3b73fbc9d3561a8f01c702963ac4fab91599c686076e7081eb6a80c37ccd33591ae978996d6eee1dc0ce0f1c50259a fix-gcj-stdgnu14-link.patch
f89ddeb21bc8f97e6a850a6b70b4501a8f3e49a4bc8cc82897488decda5d98ad01cb7f6c8b392d452e9579924a523bc75da6e0648c1c976d42e40af48b10343b fix-gcj-musl.patch
54d67cc008b735e47771314171930c5d8b8f5f5dc97fcf4214824c105c808f3e75d22d5a4fdf5068ed0457fa0d46c60cfb442e276259a4a5e9b8722a027d18e6 fix-gcj-iconv-musl.patch
abe9aaf9aa956058d0386a4396a511d176a46bb3906b90e952383646cdc158cbeb0a5dc616a1ccb1ca7d49fd0b5e351532aa15a3b13362abbf1ca4266f54a687 gcc-4.8-build-args.patch
35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch
9016b257abd8fa981de44a49512e35db814d1cbb47c1a87cd31c12d4ae20b13e9e149fe41691a7ec3c95bbcfde8a79194a8d2eaf547ceade3a246fad67c47dd8 ada-fixes.patch
3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch
631d4bdef6d8bde34df7978bb53ec28c3c909cf1f87139e5f148138d0f09adc58b41ecf0148bbf50fb4bc916c411e9bf8a2b6c046c75c0e77d754d8c35bcd4d7 ada-musl.patch
fa44c8158111627aa0e91c43e7cc3aa38642c2041c96532dd4f0932dae4d6f92ea2850b683abcf10e7e120299d42ea6b69adc00002a514c76be8e39e99fa052b ada-aarch64-multiarch.patch
4b4a0ff306a8ef34ff6e3284fbfca869012164a47ba7cb099085c1dd03e6ca0cdd462f82710e08c9a02895adc7484e4c5eef17b5aa264cf5d978fe8ad78eea93 300-main-gcc-add-musl-s390x-dynamic-linker.patch
385bc2fa50204f678964e5148c6170f572701dab920fbec8301f505bda34d182cde0adb7da042fee71719e12fb59f59181897f9b1bb4f4716ff59aad46ca1998 310-build-gcj-s390x.patch
50537add461714f44dc6a778e0c6d0e15d6a782591c8aff38d1fb559191ddac2b5ee14a43a3005b389fdf98d2e7468ff4e64c88ba024cf94f9fe0d9854b9e9c8 ada-musl.patch
a1f7750bc7b8b7d916a5dee34fcc736bd4fb249c96538b547d495794e6cfd49356aa3974506a15074b4cb58edd5d7e2868607c902dd003e8c464d5066fd4a575 libgnarl-musl.patch
f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch
01c71cd5881fc07ea3b9b980697e89b3ca0fe98502958ceafc3fca18b2604c844e2f457feab711baf8e03f00a5383b0e38aac7eb954034e306f43d4a37f165ed fix-rs6000-pie.patch
34a818d5be67eb1f34e44a80b83c28a9b9c17d37fc9fac639f490d6bb5b53ebe3318140d09c236a17d7c98f5a7792ae3d6cefccda8067a5e942d6305b9d1f87c fix-linux-header-use-in-libgcc.patch
86be3338cc9c33089608bc4c5e3b7918c4e500a345c338f361b18c342119a6ed69af5495d72950de7106d760f003528b46ad14795e805f8a3331e206dcb234e3 gcc-pure64-mips.patch
508f3bca214d88531d739d761d07affc953689b1540905c73420b34c246e1e6b72588cf89f0e1462752633f8ddc88da8c0238be2a1b6e1c213829cecee7924cf ada-mips64.patch
7912964bf3a985e9f870250d6e068f715582a4fb04270849d697a50e6aad0cf50df3d483ff80a0eb777d9940fd85526dd8d0b85da9bc71a5f2fbc07616263866 0001-i386-Move-struct-ix86_frame-to-machine_function.patch
baa27a4b912d8e27cd65a556b09cf45289a0e00e86dae3925f2923d1f3752080e80d80e159c996ef4156c4df1dfc3069114810a846672170ef3ae461ae0ab7e1 0002-i386-Use-reference-of-struct-ix86_frame-to-avoid-cop.patch
6701d15000bdd7c4c98a8fece8c814f5e4e73603eecf84fe4dc5ac10f79b3074afba7c2cc9e51d08b2abade1c34cb0c944c08ead7a85db94e97158c752fd1aac 0003-i386-Use-const-reference-of-struct-ix86_frame-to-avo.patch
4e7e71ae57e232b29a6455ec977f60b47df1356eca0e85976ae2b4567c4c39541be9f10c30fe0085d69be5acdb61dff51d3e9d7af587c95d9cd2cb9ee307bd13 0004-x86-Add-mindirect-branch.patch
07f7fdbd9b4876f36ed7715a35a369dbaf1016f46c42a8935930cfcc9ea250de2dbe8113f077373ccce3c39cd728f957b6c4c7c6a7da299f160a4109f0bbe88d 0005-x86-Add-mfunction-return.patch
76ea947591e5241f8e6216ce337baaf1b5dfe3f02d8251f77a4acd70e2a5e7798e2867d70f452027f51a2e3baf1b5c94c3bffe9ef8e0a5ce24dc5d509adaf414 0006-x86-Add-mindirect-branch-register.patch
1c33c5cd34efb44d4fa0ace56e3d27ec802a66e03b08a29ab6122cbc70edbbe22313a34114437a41e09e0a6869af3cea3fb18f5bcb49db2f8e3f155026fe15f0 0007-x86-Add-V-register-operand-modifier.patch
5366e2cff0629304394bf35e9417c7faea6b6f3fc565d0410a17fdafcb2b30c9a218f8ca098274c09ca4c982ff5b178ad6df5bf464ec541aa086966915c7fe11 0008-x86-Disallow-mindirect-branch-mfunction-return-with-.patch
67c738b1f6afb09b6f0469c9cb282ab4d51fc8dd8e39df1cfdff8831788c1022081fccd446a482623f649898733aeaaa205cba0aa41162cdbdc74e57de9bb6eb 0009-Use-INVALID_REGNUM-in-indirect-thunk-processing.patch
b7b59f3203bf53168de2170b91738cd456f6ae205b3fe5bf8aacbaa8cc5624dd09c941ad8f1071d1ab8ab4fb5f69068a4bc792c0486fdec1ee2eb9c83688bb78 0010-i386-Pass-INVALID_REGNUM-as-invalid-register-number.patch
c53d4c5968865abb709ee8a9af9d57917d43ea3ba31ee8312f9e8f338e9b1b44babf5aa3414848da7267e5cf13a9261815eb9185dc153cbd41ee7ce5ea23d2d0 0011-i386-Update-mfunction-return-for-return-with-pop.patch
955080ba3e42cfe2f604e5dcef46aa6fca7c899c7808398947af655ff3b7954e30807ef85246986a5cc7db36dbc870db151e9fa8d8bc967b89ea56efdf64614c 0012-i386-Add-TARGET_INDIRECT_BRANCH_REGISTER.patch
3aae3a9cef8e8afe5a5433db8d9f410e1a2882481af01bb1d33232f987dbb74d7780c32be70b868bb391b3601b65ed3a16d777afea946f5eeaff72aa1e7fa3a9 0013-i386-Don-t-generate-alias-for-function-return-thunk.patch"
8039d4081b77332694bc10f898d5e4da0ece4ce7b0e219fedb2aab965126b6b0537d03ba8652341c9c35af07eef33e96b42cc02388f36d8027b9475d44f6b420 0016-invalid_tls_model.patch"
+103 -23
View File
@@ -1,7 +1,8 @@
diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
--- gcc-5.1.0/gcc.orig/ada/adaint.c 2015-02-20 11:48:57.000000000 +0000
+++ gcc-5.1.0/gcc/ada/adaint.c 2015-06-02 10:47:51.672767476 +0000
@@ -70,6 +70,11 @@
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 3b0aea9..ee0bb69 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -76,6 +76,11 @@
#include <sys/param.h>
#include <sys/pstat.h>
#endif
@@ -13,16 +14,15 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
#ifdef __PikeOS__
#define __BSD_VISIBLE 1
@@ -3057,8 +3062,6 @@ __gnat_lwp_self (void)
return (void *) syscall (__NR_gettid);
}
@@ -3255,7 +3260,6 @@ __gnat_lwp_self (void)
#endif
#if defined (__linux__)
-#include <sched.h>
-
/* glibc versions earlier than 2.7 do not define the routines to handle
dynamically allocated CPU sets. For these targets, we use the static
versions. */
@@ -3067,7 +3070,7 @@ __gnat_lwp_self (void)
@@ -3265,7 +3269,7 @@ __gnat_lwp_self (void)
/* Dynamic cpu sets */
@@ -31,7 +31,7 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
__gnat_cpu_alloc (size_t count)
{
return CPU_ALLOC (count);
@@ -3080,33 +3083,33 @@ __gnat_cpu_alloc_size (size_t count)
@@ -3278,33 +3282,33 @@ __gnat_cpu_alloc_size (size_t count)
}
void
@@ -73,7 +73,7 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
}
size_t
@@ -3116,23 +3119,23 @@ __gnat_cpu_alloc_size (size_t count ATTR
@@ -3314,23 +3318,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
}
void
@@ -101,11 +101,12 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c
+ CPU_SET (cpu - 1, (cpu_set_t *) set);
}
#endif /* !CPU_ALLOC */
#endif /* linux */
diff -rup gcc-5.1.0/gcc.orig/ada/adaint.h gcc-5.1.0/gcc/ada/adaint.h
--- gcc-5.1.0/gcc.orig/ada/adaint.h 2015-01-27 17:20:27.000000000 +0000
+++ gcc-5.1.0/gcc/ada/adaint.h 2015-06-02 10:47:23.188910894 +0000
@@ -287,13 +287,11 @@ extern void *__gnat_lwp_self (voi
#endif /* __linux__ */
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 0d12f7e..a063b47 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -316,13 +316,11 @@ extern void *__gnat_lwp_self (void);
/* Routines for interface to required CPU set primitives */
@@ -123,15 +124,94 @@ diff -rup gcc-5.1.0/gcc.orig/ada/adaint.h gcc-5.1.0/gcc/ada/adaint.h
#endif
#if defined (_WIN32)
diff -rup gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in
--- gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in 2015-04-09 20:29:28.000000000 +0000
+++ gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in 2015-06-02 10:47:23.188910894 +0000
@@ -1910,7 +1910,7 @@ ifeq ($(strip $(filter-out powerpc% linu
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 7025f57..207b50d 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1108,13 +1108,6 @@ __gnat_setup_winsize (void *desc, int rows, int columns)
#include <stdio.h>
#include <stdlib.h>
-/* On some system termio is either absent or including it will disable termios
- (HP-UX) */
-#if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \
- && !defined (__rtems__) && !defined (__QNXNTO__)
-# include <termio.h>
-#endif
-
#include <sys/ioctl.h>
#include <termios.h>
#include <fcntl.h>
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index ebb955e..08cfbee 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -1028,7 +1028,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
g-sercom.adb<libgnat/g-sercom__linux.adb \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
s-linux.ads<libgnarl/s-linux.ads \
@@ -1545,7 +1545,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
@@ -1574,7 +1574,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
endif
# ARM linux, GNU eabi
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-linux.ads \
s-inmaop.adb<s-inmaop-posix.adb \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
@@ -1774,7 +1774,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ia64.ads
@@ -1871,7 +1871,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix.ads \
g-sercom.adb<libgnat/g-sercom__linux.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
system.ads<libgnat/system-linux-x86.ads
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index 207b50d..bd3a02c 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -1152,7 +1152,7 @@ __gnat_setup_winsize (void *desc, int rows, int columns)
#if defined (__APPLE__) || defined (BSD)
#define USE_OPENPTY
#elif defined (__linux__)
-#define USE_GETPT
+#define USE_POSIX_OPENPT
#elif defined (__sun__)
#define USE_CLONE_DEVICE "/dev/ptmx"
#elif defined (_AIX)
@@ -1201,8 +1201,8 @@ allocate_pty_desc (pty_desc **desc) {
int master_fd = -1;
char *slave_name = NULL;
-#ifdef USE_GETPT
- master_fd = getpt ();
+#ifdef USE_POSIX_OPENPT
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
#elif defined (USE_OPENPTY)
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
+58
View File
@@ -0,0 +1,58 @@
# DP: Use --push-state/--pop-state for gold as well when linking libtsan.
Index: b/gcc/gcc.c
===================================================================
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -693,10 +693,10 @@ proper position among the other output f
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libasan:--push-state --no-as-needed}" \
" -lasan " \
" %{static-libasan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libasan:--pop-state}" \
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
@@ -714,10 +714,10 @@ proper position among the other output f
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libtsan:--push-state --no-as-needed}" \
" -ltsan " \
" %{static-libtsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libtsan:--pop-state}" \
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
@@ -735,10 +735,10 @@ proper position among the other output f
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-liblsan:--push-state --no-as-needed}" \
" -llsan " \
" %{static-liblsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-liblsan:--pop-state}" \
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
@@ -754,10 +754,10 @@ proper position among the other output f
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \
+ " %{!static-libubsan:--push-state --no-as-needed}" \
" -lubsan " \
" %{static-libubsan:" LD_DYNAMIC_OPTION "}" \
- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \
+ " %{!static-libubsan:--pop-state}" \
STATIC_LIBUBSAN_LIBS
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
@@ -0,0 +1,43 @@
From: Jakub Jelinek <jakub@redhat.com>
Subject: [PATCH] Use --push-state --as-needed and --pop-state instead of --as-needed and --no-as-needed for libgcc
As discussed, using --as-needed and --no-as-needed is dangerous, because
it results in --no-as-needed even for libraries after -lgcc_s, even when the
default is --as-needed or --as-needed has been specified earlier on the
command line.
If the linker supports --push-state/--pop-state, we should IMHO use it.
2018-04-11 Jakub Jelinek <jakub@redhat.com>
* configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
--push-state --as-needed and --pop-state instead of --as-needed and
--no-as-needed if ld supports it.
* configure: Regenerated.
Index: b/gcc/configure.ac
===================================================================
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5518,11 +5518,21 @@ if test $in_tree_ld = yes ; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
&& test $in_tree_ld_is_elf = yes; then
gcc_cv_ld_as_needed=yes
+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 28; then
+ gcc_cv_ld_as_needed_option='--push-state --as-needed'
+ gcc_cv_ld_no_as_needed_option='--pop-state'
+ fi
fi
elif test x$gcc_cv_ld != x; then
# Check if linker supports --as-needed and --no-as-needed options
if $gcc_cv_ld --help 2>&1 | grep as-needed > /dev/null; then
gcc_cv_ld_as_needed=yes
+ if $gcc_cv_ld --help 2>&1 | grep push-state > /dev/null; then
+ if $gcc_cv_ld --help 2>&1 | grep pop-state > /dev/null; then
+ gcc_cv_ld_as_needed_option='--push-state --as-needed'
+ gcc_cv_ld_no_as_needed_option='--pop-state'
+ fi
+ fi
fi
case "$target:$gnu_ld" in
*-*-solaris2*:no)
+120
View File
@@ -0,0 +1,120 @@
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
--- gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800
+++ gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700
@@ -394,12 +394,6 @@ package System.OS_Interface is
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
- function pthread_rwlockattr_setkind_np
- (attr : access pthread_rwlockattr_t;
- pref : int) return int;
- pragma Import
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
-
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
@@ -464,11 +458,6 @@ package System.OS_Interface is
protocol : int) return int;
pragma Import (C, pthread_mutexattr_setprotocol);
- function pthread_mutexattr_setprioceiling
- (attr : access pthread_mutexattr_t;
- prioceiling : int) return int;
- pragma Import (C, pthread_mutexattr_setprioceiling);
-
type struct_sched_param is record
sched_priority : int; -- scheduling priority
end record;
diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
--- gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800
+++ gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800
@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
pragma Import
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
- function GNAT_has_cap_sys_nice return C.int;
- pragma Import
- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice");
-- We do not have pragma Linker_Options ("-lcap"); here, because this
-- library is not present on many Linux systems. 'libcap' is the Linux
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
- function Get_Ceiling_Support return Boolean;
- -- Get the value of the Ceiling_Support constant (see below).
- -- Note well: If this function or related code is modified, it should be
- -- tested by hand, because automated testing doesn't exercise it.
-
- -------------------------
- -- Get_Ceiling_Support --
- -------------------------
-
- function Get_Ceiling_Support return Boolean is
- Ceiling_Support : Boolean := False;
- begin
- if Locking_Policy /= 'C' then
- return False;
- end if;
-
- declare
- function geteuid return Integer;
- pragma Import (C, geteuid, "geteuid");
- Superuser : constant Boolean := geteuid = 0;
- Has_Cap : constant C.int := GNAT_has_cap_sys_nice;
- pragma Assert (Has_Cap in 0 | 1);
- begin
- Ceiling_Support := Superuser or else Has_Cap = 1;
- end;
-
- return Ceiling_Support;
- end Get_Ceiling_Support;
-
- pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
- pragma Warnings (On, "non-static call not allowed in preelaborated unit");
-- True if the locking policy is Ceiling_Locking, and the current process
-- has permission to use this policy. The process has permission if it is
-- running as 'root', or if the capability was set by the setcap command,
@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
-- Init_Mutex --
----------------
+ pragma Warnings (Off, "formal parameter * is not referenced");
function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is
+ pragma Warnings (On, "formal parameter * is not referenced");
Mutex_Attr : aliased pthread_mutexattr_t;
Result, Result_2 : C.int;
@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
return Result;
end if;
- if Ceiling_Support then
- Result := pthread_mutexattr_setprotocol
- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT);
- pragma Assert (Result = 0);
-
- Result := pthread_mutexattr_setprioceiling
- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio));
- pragma Assert (Result = 0);
-
- elsif Locking_Policy = 'I' then
+ if Locking_Policy = 'I' then
Result := pthread_mutexattr_setprotocol
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
pragma Assert (Result = 0);
@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
pragma Assert (Result = 0);
- Result := pthread_rwlockattr_setkind_np
- (RWlock_Attr'Access,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- pragma Assert (Result = 0);
-
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
pragma Assert (Result in 0 | ENOMEM);
+42
View File
@@ -0,0 +1,42 @@
From 65eb86f3e110998d30489df009d44b4bc1043adc Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
Subject: [PATCH 02/12] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
index ffbb7f82cf5..b0b890d2403 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
#include <stdlib.h>
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
- may not be visible. */
+ may not be visible and we can't pollute the namespace either. */
#ifndef __cplusplus
-extern int posix_memalign (void **, size_t, size_t);
+extern int _mm_posix_memalign (void **, size_t, size_t)
#else
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw ()
#endif
+__asm__("posix_memalign");
static __inline void *
_mm_malloc (size_t __size, size_t __alignment)
@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment)
return malloc (__size);
if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4))
__alignment = sizeof (void *);
- if (posix_memalign (&__ptr, __alignment, __size) == 0)
+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0)
return __ptr;
else
return NULL;
--
2.17.1
@@ -0,0 +1,194 @@
From 48c670d2678e0323d88eb72205e039f393cabe05 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 03/39] gcc: poison-system-directories
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Inappropriate [distribution: codesourcery]
---
gcc/common.opt | 4 ++++
gcc/config.in | 6 ++++++
gcc/configure | 16 ++++++++++++++++
gcc/configure.ac | 10 ++++++++++
gcc/doc/invoke.texi | 9 +++++++++
gcc/gcc.c | 2 ++
gcc/incpath.c | 19 +++++++++++++++++++
7 files changed, 66 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
index d6ef85928f3..7b29efe3882 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -679,6 +679,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
Wshadow
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
index 5bccb408016..1c784a8276b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -194,6 +194,12 @@
#endif
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index 5c345ce0fd7..cafd05fd150 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -953,6 +953,7 @@ with_system_zlib
enable_maintainer_mode
enable_link_mutex
enable_version_specific_runtime_libs
+enable_poison_system_directories
enable_plugin
enable_host_shared
enable_libquadmath_support
@@ -1696,6 +1697,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
+ --enable-poison-system-directories
+ warn for use of native system header directories
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
@@ -29715,6 +29718,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
# Substitute configuration variables
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 65dbf1f2f80..dd5b38195ce 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -6341,6 +6341,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system header directories]),,
+ [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system header directories])
+fi
+
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 255149fcfb8..cb71b60fe3c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -303,6 +303,7 @@ Objective-C and Objective-C++ Dialects}.
-Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
-Wparentheses -Wno-pedantic-ms-format @gol
-Wplacement-new -Wplacement-new=@var{n} @gol
+-Wno-poison-system-directories @gol
-Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol
-Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol
-Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol
@@ -5712,6 +5713,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
@item -Wfloat-equal
@opindex Wfloat-equal
@opindex Wno-float-equal
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a716f708259..02b3cd39fc2 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1037,6 +1037,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
+ %{Werror=poison-system-directories:--error-poison-system-directories} \
%{static|no-pie|static-pie:} %{L*} %(mfwrap) %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
diff --git a/gcc/incpath.c b/gcc/incpath.c
index b11c6a57939..e3b7a21966f 100644
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
#include "cppdefault.h"
+#include "diagnostic-core.h"
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
+ struct cpp_dir *p;
+
+ for (p = heads[INC_QUOTE]; p; p = p->next)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+ p->name);
+ }
+ }
+#endif
}
/* Use given -I paths for #include "..." but not #include <...>, and
--
2.17.0
+26
View File
@@ -0,0 +1,26 @@
From b693804c8dba92fea7beee98f0aa520853a0532b Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Thu, 22 Dec 2016 11:22:28 +0000
Subject: [PATCH 08/12] s390x muslldso
---
gcc/config/s390/linux.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 525c17c2c9f..2d4f4a0654e 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
+
#undef LINK_SPEC
#define LINK_SPEC \
"%{m31:-m elf_s390}%{m64:-m elf64_s390} \
--
2.17.1
+76
View File
@@ -0,0 +1,76 @@
From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Wed, 28 Feb 2018 00:54:05 +0000
Subject: [PATCH 10/12] ldbl128 config
---
gcc/configure | 13 +++++++++++++
gcc/configure.ac | 16 ++++++++++++++--
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/gcc/configure b/gcc/configure
index 6121e163259..07ff8597d48 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then :
withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128"
else
+ case "$target" in
+ s390*-*-linux-musl*)
+ gcc_cv_target_ldbl128=yes
+ ;;
+ powerpc*-*-linux-musl*)
+ gcc_cv_target_ldbl128=no
+ ;;
+ *)
+
if test $glibc_version_major -gt 2 \
|| ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then :
gcc_cv_target_ldbl128=yes
@@ -29320,6 +29329,10 @@ else
&& gcc_cv_target_ldbl128=yes
fi
+
+ ;;
+ esac
+
fi
;;
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b066cc609e1..6c15ed898c0 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5971,13 +5971,25 @@ case "$target" in
AC_ARG_WITH(long-double-128,
[AS_HELP_STRING([--with-long-double-128],
[use 128-bit long double by default])],
- gcc_cv_target_ldbl128="$with_long_double_128",
+ gcc_cv_target_ldbl128="$with_long_double_128", [
+ case "$target" in
+ s390*-*-linux-musl*)
+ gcc_cv_target_ldbl128=yes
+ ;;
+ powerpc*-*-linux-musl*)
+ gcc_cv_target_ldbl128=no
+ ;;
+ *)]
[GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [
[gcc_cv_target_ldbl128=no
grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
$target_header_dir/bits/wordsize.h > /dev/null 2>&1 \
&& gcc_cv_target_ldbl128=yes
- ]])])
+ ]])]
+ [
+ ;;
+ esac
+ ])
;;
esac
if test x$gcc_cv_target_ldbl128 = xyes; then
--
2.17.1
+138
View File
@@ -0,0 +1,138 @@
From a4aa319f7c19e564dced3daeb7222c9315af936c Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 18 Aug 2018 23:58:45 +0000
Subject: [PATCH 12/12] static-pie
in gcc-8 -static means static non-pie, even if -pie or -static-pie
are specified, -static-pie can be used to build static pie.
in musl toolchains -static -pie always meant static pie, so this
patch fixes the link specs accordingly, the new -static-pie is just
an alias to -static -pie.
---
gcc/common.opt | 4 ++--
gcc/config/gnu-user.h | 12 +++++-------
gcc/config/rs6000/sysv4.h | 11 +++++------
gcc/gcc.c | 6 +++---
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index b52ef0b38c8..0ce5857e01d 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -3197,11 +3197,11 @@ Driver
no-pie
Driver RejectNegative Negative(shared)
-Don't create a dynamically linked position independent executable.
+Don't create a position independent executable.
pie
Driver RejectNegative Negative(no-pie)
-Create a dynamically linked position independent executable.
+Create a position independent executable.
static-pie
Driver RejectNegative Negative(pie)
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 8620de3e42d..235328a2642 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -52,13 +52,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define GNU_USER_TARGET_STARTFILE_SPEC \
"%{shared:; \
pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \
- static:crt1.o%s; \
- static-pie:rcrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
" PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} \
crti.o%s \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -92,8 +91,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
"%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
fvtable-verify=std:vtv_end.o%s} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} \
crtn.o%s \
" CRTOFFLOADEND
@@ -133,7 +131,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} "
#endif
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index bb19d0dcd41..bb2a2324eb0 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -763,12 +763,12 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
#define STARTFILE_LINUX_SPEC \
"%{shared:; \
pg|p|profile:gcrt1.o%s; \
- static:crt1.o%s; \
- static-pie|" PIE_SPEC ":Scrt1.o%s; \
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
+ " PIE_SPEC ":Scrt1.o%s; \
:crt1.o%s} \
%{mnewlib:ecrti.o%s;:crti.o%s} \
- %{static:crtbeginT.o%s; \
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
+ static:crtbeginT.o%s; \
:crtbegin.o%s} \
%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_start_preinit.o%s; \
@@ -781,8 +781,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
"%{fvtable-verify=none:%s; \
fvtable-verify=preinit:vtv_end_preinit.o%s; \
fvtable-verify=std:vtv_end.o%s} \
- %{static:crtend.o%s; \
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
:crtend.o%s} \
%{mnewlib:ecrtn.o%s;:crtn.o%s} \
" CRTOFFLOADEND
diff --git a/gcc/gcc.c b/gcc/gcc.c
index eb1610ba8b0..87560afb03c 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -900,7 +900,7 @@ proper position among the other output files. */
#define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC
#define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;"
#else
-#define PIE_SPEC "pie"
+#define PIE_SPEC "pie|static-pie"
#define FPIE1_SPEC "fpie"
#define NO_FPIE1_SPEC FPIE1_SPEC ":;"
#define FPIE2_SPEC "fPIE"
@@ -924,12 +924,12 @@ proper position among the other output files. */
#ifndef LINK_PIE_SPEC
#ifdef HAVE_LD_PIE
#ifndef LD_PIE_SPEC
-#define LD_PIE_SPEC "-pie"
+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic}"
#endif
#else
#define LD_PIE_SPEC ""
#endif
-#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
#endif
#ifndef LINK_BUILDID_SPEC
--
2.17.1
@@ -0,0 +1,25 @@
--- ./libgomp/configure.tgt.orig 2018-09-25 13:44:16.654561098 -0400
+++ ./libgomp/configure.tgt 2018-09-25 13:44:50.452688100 -0400
@@ -10,23 +10,6 @@
# XCFLAGS Add extra compile flags to use.
# XLDFLAGS Add extra link flags to use.
-# Optimize TLS usage by avoiding the overhead of dynamic allocation.
-if test $gcc_cv_have_tls = yes ; then
- case "${target}" in
-
- *-*-k*bsd*-gnu*)
- ;;
-
- *-*-linux* | *-*-gnu*)
- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
- ;;
-
- *-*-rtems*)
- XCFLAGS="${XCFLAGS} -ftls-model=local-exec"
- ;;
- esac
-fi
-
# Since we require POSIX threads, assume a POSIX system by default.
config_path="posix"
Loaded 100 of 2154 files, more files were not shown because too many files have changed in this diff. Show more