diff -Nru android-headers-23/debian/changelog android-headers-23/debian/changelog --- android-headers-23/debian/changelog 2016-01-29 05:25:51.000000000 +0000 +++ android-headers-23/debian/changelog 2016-08-16 08:16:08.000000000 +0000 @@ -1,11 +1,28 @@ -android-headers (23-0ubuntu2) xenial; urgency=medium +android-headers (23-0ubuntu4~xenial1) xenial; urgency=medium + + [ You-Sheng Yang ] + * android-19: hardware: align struct size on arm64 + + -- Simon Fels Tue, 16 Aug 2016 09:23:00 +0200 + +android-headers (23-0ubuntu3) xenial; urgency=medium * debian/android-headers.{preinst,postinst,postrm}: Use dpkg-maintscript-helper to switch /usr/include/android to a symlink. (LP: #1539338) - * debian/control: add appropriate Pre-Depends on dpkg for mainscript helper. + * debian/control: add appropriate Pre-Depends on dpkg for mainscript + helper. + * debian/control: fix link to vcs + + -- Simon Fels Mon, 11 Apr 2016 11:02:08 +0200 + +android-headers (23-0ubuntu2) xenial; urgency=medium + + * Patch 21-23 to fix ABI problems when we mix softfp and hardfp + binaries (LP: #1548954). This was discovered while fixing a + problem with the Android Audio HAL API. - -- Christopher James Halse Rogers Fri, 29 Jan 2016 16:00:44 +1100 + -- Simon Fels Mon, 11 Apr 2016 09:43:58 +0200 android-headers (23-0ubuntu1) xenial; urgency=medium diff -Nru android-headers-23/debian/control android-headers-23/debian/control --- android-headers-23/debian/control 2016-01-29 05:22:00.000000000 +0000 +++ android-headers-23/debian/control 2016-08-16 07:23:10.000000000 +0000 @@ -4,7 +4,8 @@ Maintainer: Ubuntu Developers Build-Depends: debhelper (>= 9), quilt Standards-Version: 3.9.6 -Vcs-Bzr: lp:android-headers +Vcs-Git: https://git.launchpad.net/android-headers +Vcs-Browser: https://git.launchpad.net/android-headers Package: android-headers Architecture: all diff -Nru android-headers-23/debian/patches/debian-changes android-headers-23/debian/patches/debian-changes --- android-headers-23/debian/patches/debian-changes 2016-01-29 05:25:53.000000000 +0000 +++ android-headers-23/debian/patches/debian-changes 2016-08-16 08:16:13.000000000 +0000 @@ -94,6 +94,33 @@ /** * set_mode is called when the audio mode changes. AUDIO_MODE_NORMAL mode +--- android-headers-23.orig/19/hardware/hardware.h ++++ android-headers-23/19/hardware/hardware.h +@@ -144,8 +144,12 @@ typedef struct hw_module_t { + /** module's dso */ + void* dso; + ++#ifdef __LP64__ ++ uint64_t reserved[32-7]; ++#else + /** padding to 128 bytes, reserved for future use */ + uint32_t reserved[32-7]; ++#endif + + } hw_module_t; + +@@ -186,7 +190,11 @@ typedef struct hw_device_t { + struct hw_module_t* module; + + /** padding reserved for future use */ ++#ifdef __LP64__ ++ uint64_t reserved[12]; ++#else + uint32_t reserved[12]; ++#endif + + /** Close this device */ + int (*close)(struct hw_device_t* device); --- android-headers-23.orig/19/hardware/hwcomposer.h +++ android-headers-23/19/hardware/hwcomposer.h @@ -121,6 +121,33 @@ typedef struct hwc_layer_1 { @@ -1234,3 +1261,180 @@ #ifdef __cplusplus extern "C" { +--- android-headers-23.orig/21/hardware/audio.h ++++ android-headers-23/21/hardware/audio.h +@@ -29,6 +29,12 @@ + #include + #include + ++#ifdef __ARM_PCS_VFP ++#define FP_ATTRIB __attribute__((pcs("aapcs"))) ++#else ++#define FP_ATTRIB ++#endif ++ + __BEGIN_DECLS + + /** +@@ -287,7 +293,7 @@ struct audio_stream_out { + * This method might produce multiple PCM outputs or hardware accelerated + * codecs, such as MP3 or AAC. + */ +- int (*set_volume)(struct audio_stream_out *stream, float left, float right); ++ int (*set_volume)(struct audio_stream_out *stream, float left, float right) FP_ATTRIB; + + /** + * Write audio buffer to driver. Returns number of bytes written, or a +@@ -405,7 +411,7 @@ struct audio_stream_in { + + /** set the input gain for the audio driver. This method is for + * for future use */ +- int (*set_gain)(struct audio_stream_in *stream, float gain); ++ int (*set_gain)(struct audio_stream_in *stream, float gain) FP_ATTRIB; + + /** Read audio buffer in from audio driver. Returns number of bytes read, or a + * negative status_t. If at least one frame was read prior to the error, +@@ -519,14 +525,14 @@ struct audio_hw_device { + int (*init_check)(const struct audio_hw_device *dev); + + /** set the audio volume of a voice call. Range is between 0.0 and 1.0 */ +- int (*set_voice_volume)(struct audio_hw_device *dev, float volume); ++ int (*set_voice_volume)(struct audio_hw_device *dev, float volume) FP_ATTRIB; + + /** + * set the audio volume for all audio activities other than voice call. + * Range between 0.0 and 1.0. If any value other than 0 is returned, + * the software mixer will emulate this capability. + */ +- int (*set_master_volume)(struct audio_hw_device *dev, float volume); ++ int (*set_master_volume)(struct audio_hw_device *dev, float volume) FP_ATTRIB; + + /** + * Get the current master volume value for the HAL, if the HAL supports +@@ -535,7 +541,7 @@ struct audio_hw_device { + * the initial master volume across all HALs. HALs which do not support + * this method may leave it set to NULL. + */ +- int (*get_master_volume)(struct audio_hw_device *dev, float *volume); ++ int (*get_master_volume)(struct audio_hw_device *dev, float *volume) FP_ATTRIB; + + /** + * set_mode is called when the audio mode changes. AUDIO_MODE_NORMAL mode +--- android-headers-23.orig/22/hardware/audio.h ++++ android-headers-23/22/hardware/audio.h +@@ -29,6 +29,12 @@ + #include + #include + ++#ifdef __ARM_PCS_VFP ++#define FP_ATTRIB __attribute__((pcs("aapcs"))) ++#else ++#define FP_ATTRIB ++#endif ++ + __BEGIN_DECLS + + /** +@@ -290,7 +296,7 @@ struct audio_stream_out { + * This method might produce multiple PCM outputs or hardware accelerated + * codecs, such as MP3 or AAC. + */ +- int (*set_volume)(struct audio_stream_out *stream, float left, float right); ++ int (*set_volume)(struct audio_stream_out *stream, float left, float right) FP_ATTRIB; + + /** + * Write audio buffer to driver. Returns number of bytes written, or a +@@ -408,7 +414,7 @@ struct audio_stream_in { + + /** set the input gain for the audio driver. This method is for + * for future use */ +- int (*set_gain)(struct audio_stream_in *stream, float gain); ++ int (*set_gain)(struct audio_stream_in *stream, float gain) FP_ATTRIB; + + /** Read audio buffer in from audio driver. Returns number of bytes read, or a + * negative status_t. If at least one frame was read prior to the error, +@@ -522,14 +528,14 @@ struct audio_hw_device { + int (*init_check)(const struct audio_hw_device *dev); + + /** set the audio volume of a voice call. Range is between 0.0 and 1.0 */ +- int (*set_voice_volume)(struct audio_hw_device *dev, float volume); ++ int (*set_voice_volume)(struct audio_hw_device *dev, float volume) FP_ATTRIB; + + /** + * set the audio volume for all audio activities other than voice call. + * Range between 0.0 and 1.0. If any value other than 0 is returned, + * the software mixer will emulate this capability. + */ +- int (*set_master_volume)(struct audio_hw_device *dev, float volume); ++ int (*set_master_volume)(struct audio_hw_device *dev, float volume) FP_ATTRIB; + + /** + * Get the current master volume value for the HAL, if the HAL supports +@@ -538,7 +544,7 @@ struct audio_hw_device { + * the initial master volume across all HALs. HALs which do not support + * this method may leave it set to NULL. + */ +- int (*get_master_volume)(struct audio_hw_device *dev, float *volume); ++ int (*get_master_volume)(struct audio_hw_device *dev, float *volume) FP_ATTRIB; + + /** + * set_mode is called when the audio mode changes. AUDIO_MODE_NORMAL mode +--- android-headers-23.orig/23/hardware/audio.h ++++ android-headers-23/23/hardware/audio.h +@@ -29,6 +29,12 @@ + #include + #include + ++#ifdef __ARM_PCS_VFP ++#define FP_ATTRIB __attribute__((pcs("aapcs"))) ++#else ++#define FP_ATTRIB ++#endif ++ + __BEGIN_DECLS + + /** +@@ -290,7 +296,7 @@ struct audio_stream_out { + * This method might produce multiple PCM outputs or hardware accelerated + * codecs, such as MP3 or AAC. + */ +- int (*set_volume)(struct audio_stream_out *stream, float left, float right); ++ int (*set_volume)(struct audio_stream_out *stream, float left, float right) FP_ATTRIB; + + /** + * Write audio buffer to driver. Returns number of bytes written, or a +@@ -408,7 +414,7 @@ struct audio_stream_in { + + /** set the input gain for the audio driver. This method is for + * for future use */ +- int (*set_gain)(struct audio_stream_in *stream, float gain); ++ int (*set_gain)(struct audio_stream_in *stream, float gain) FP_ATTRIB; + + /** Read audio buffer in from audio driver. Returns number of bytes read, or a + * negative status_t. If at least one frame was read prior to the error, +@@ -522,14 +528,14 @@ struct audio_hw_device { + int (*init_check)(const struct audio_hw_device *dev); + + /** set the audio volume of a voice call. Range is between 0.0 and 1.0 */ +- int (*set_voice_volume)(struct audio_hw_device *dev, float volume); ++ int (*set_voice_volume)(struct audio_hw_device *dev, float volume) FP_ATTRIB; + + /** + * set the audio volume for all audio activities other than voice call. + * Range between 0.0 and 1.0. If any value other than 0 is returned, + * the software mixer will emulate this capability. + */ +- int (*set_master_volume)(struct audio_hw_device *dev, float volume); ++ int (*set_master_volume)(struct audio_hw_device *dev, float volume) FP_ATTRIB; + + /** + * Get the current master volume value for the HAL, if the HAL supports +@@ -538,7 +544,7 @@ struct audio_hw_device { + * the initial master volume across all HALs. HALs which do not support + * this method may leave it set to NULL. + */ +- int (*get_master_volume)(struct audio_hw_device *dev, float *volume); ++ int (*get_master_volume)(struct audio_hw_device *dev, float *volume) FP_ATTRIB; + + /** + * set_mode is called when the audio mode changes. AUDIO_MODE_NORMAL mode