From patchwork Mon Mar 25 10:52:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Etienne Carriere X-Patchwork-Id: 1064126 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="zTLeMrqn"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44SWP72gkgz9sSM for ; Mon, 25 Mar 2019 21:54:50 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id E6B0985535; Mon, 25 Mar 2019 10:54:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hXrTkl50v6VL; Mon, 25 Mar 2019 10:54:42 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 871B580CDB; Mon, 25 Mar 2019 10:54:42 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id B20AD1BF35F for ; Mon, 25 Mar 2019 10:53:06 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id AF2E922773 for ; Mon, 25 Mar 2019 10:53:06 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XfU1NO-LsQJ7 for ; Mon, 25 Mar 2019 10:53:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by silver.osuosl.org (Postfix) with ESMTPS id 6280522EC9 for ; Mon, 25 Mar 2019 10:53:04 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id y13so9564495wrd.3 for ; Mon, 25 Mar 2019 03:53:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JS71Y8fTzR3A3Jjlo8nMYY98APZN+sPvS0XQhhckpfQ=; b=zTLeMrqn5vp5T4xzRsNcfxd+ykNy1dM9wwLSyoZrSYhauv8xHQ6bO2nqPXPTOPL5Pz RHC/2BnOeMwJKaxzPAe4A9R5Ffnwvz/9PZ16VgqJdiW4ey+mxM1KQ2oh5hDCpmPOxuxu /scby6zShbVHIQuDjQmbzsSMrobtN8inMbEC30QlJZkCljGCRAZ+kWwlZZJoFXxbua/Y npIgqY4gYQK0RbFC0IBMABf/zSEgGMxG1RmvL8OHRYq4IK+zLA2Sn1CPR3bJhaRRdUCv MsXbyIH6jizPvJxk484r2OL0yO96VIl9+16/Zh6nUKCz8TFTDsekNi99uZxb5/jlzAKX xm0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JS71Y8fTzR3A3Jjlo8nMYY98APZN+sPvS0XQhhckpfQ=; b=iiIz+Ogq8HIU25o5qtgB/fWUuQ8lt0cKaQsMu8I/6QORcDZK9StZSRL3f1F+Q/EWiz FAdcuyhhsQ9RjtkQ8pzU8snPiWmoVpzb375Yaw0XHrJxK2IMB4FCF73aO/G9HaNukcPe AlAlaMQ52eMcF3OTpW3NPVqdo7cNOi86U5NiF9NTdXWk38GlQKvg5P/AUXzgPXLf+MqA TlUglCCFqfjOHu3GbH+5543LnJO3b5Ik+Mf1Ifm0Wr/GdPOKdhd7eGbEO5TlOyrUQova zXqab4A3SmRiFsF6K2aBnl5sQEPAHte73Krwt3t+lp70niLBH5UsXZWBGer6ITg9VYb0 n5bA== X-Gm-Message-State: APjAAAWovrpPnpFpSWI1yV1Uyeiay9LYAAsrdy81cuBPcajxhWwl3Iv3 2WM3zKQkUefctd/rronHw1AYpWpPkmY= X-Google-Smtp-Source: APXvYqxk2KUGl7aw+E5Yo/LI+bHv0i2EPHAIjEzSM2n7dPYVrYz9AMSJEBcSmrrk1sh6koWRfEnCBQ== X-Received: by 2002:a5d:4d49:: with SMTP id a9mr1198902wru.227.1553511182495; Mon, 25 Mar 2019 03:53:02 -0700 (PDT) Received: from lmecxl0524.lme.st.com ([80.215.3.110]) by smtp.gmail.com with ESMTPSA id w9sm15865156wmi.0.2019.03.25.03.53.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Mar 2019 03:53:01 -0700 (PDT) From: Etienne Carriere To: buildroot@buildroot.org Date: Mon, 25 Mar 2019 11:52:51 +0100 Message-Id: <20190325105251.5914-1-etienne.carriere@linaro.org> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v5] package/optee-client: fix build warnings from 3.4.0 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Etienne Carriere Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Add a patch over current optee-client 3.4.0 to fix build issues reported by some toolchains with traces like: /path/to/build/optee-client-3.4.0/libteec/src/tee_client_api.c: In function 'TEEC_InitializeContext': /path/to/build/optee-client-3.4.0/libteec/src/tee_client_api.c:149:28: error: 'gen_caps' may be used uninitialized in this function [-Werror=maybe-uninitialized] ctx->reg_mem = gen_caps & TEE_GEN_CAP_REG_MEM; ^ /path/to/build/optee-client-3.4.0/libteec/src/tee_client_api.c: In function ‘TEEC_OpenSession’: /path/to/build/optee-client-3.4.0/libteec/src/tee_client_api.c:507:8: error: cast increases required alignment of target type [-Werror=cast-align] arg = (struct tee_ioctl_open_session_arg *)buf; ^ /path/to/build/optee-client-3.4.0/libteec/src/tee_client_api.c: In function ‘TEEC_InvokeCommand’: /path/to/build/optee-client-3.4.0/libteec/src/tee_client_api.c:581:8: error: cast increases required alignment of target type [-Werror=cast-align] arg = (struct tee_ioctl_invoke_arg *)buf; The optee-client patches have been in the OP-TEE project [1] & [2] and will be available in the OP-TEE next release planned 3.5.0. Fixes [3], [4], [5] and other failing builds reported by autobuild tests. [1] https://github.com/OP-TEE/optee_client/pull/146 [2] https://github.com/OP-TEE/optee_client/pull/153 [3] http://autobuild.buildroot.net/results/80e78cb0bb955e912d6cbe5b30c9b024e7efc802 [4] http://autobuild.buildroot.net/results/a42c19897d03beb02fde2e7e6da25532be27d5ca [5] http://autobuild.buildroot.net/results/827087f91b7481d1c3effd615172bbee86317962 Signed-off-by: Etienne Carriere --- Changes v4 -> v5: - Fix buggy content sent in v3. Apologies. Changes v3 -> v4: - Update patch from [2] outcome Changes v2 -> v3: - Update patch from [1] outcome Changes v1 -> v2: - Updated commit comment with traces of the build issues that are fixed. --- .../0001-libteec-fix-build-warnings.patch | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 package/optee-client/0001-libteec-fix-build-warnings.patch diff --git a/package/optee-client/0001-libteec-fix-build-warnings.patch b/package/optee-client/0001-libteec-fix-build-warnings.patch new file mode 100644 index 0000000000..be87e9f46e --- /dev/null +++ b/package/optee-client/0001-libteec-fix-build-warnings.patch @@ -0,0 +1,132 @@ +From dfb382a43c237f411d8994721cee5f9c216acb0b Mon Sep 17 00:00:00 2001 +From: Etienne Carriere +Date: Wed, 20 Mar 2019 10:01:23 +0100 +Subject: [PATCH] libteec: fix build warnings +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix build warnings reported by the Buildroot team [1]: + +/home/thomas/projets/outputs/armv5-ctng-linux-gnueabi/build/optee-client-3.4.0/libteec/src/tee_client_api.c: In function 'TEEC_InitializeContext': +/home/thomas/projets/outputs/armv5-ctng-linux-gnueabi/build/optee-client-3.4.0/libteec/src/tee_client_api.c:149:28: error: 'gen_caps' may be used uninitialized in this function [-Werror=maybe-uninitialized] + ctx->reg_mem = gen_caps & TEE_GEN_CAP_REG_MEM; + ^ +/home/thomas/projets/buildroot/output/build/optee-client-3.4.0/libteec/src/tee_client_api.c: In function ‘TEEC_OpenSession’: +/home/thomas/projets/buildroot/output/build/optee-client-3.4.0/libteec/src/tee_client_api.c:507:8: error: cast increases required alignment of target type [-Werror=cast-align] + arg = (struct tee_ioctl_open_session_arg *)buf; + ^ +/home/thomas/projets/buildroot/output/build/optee-client-3.4.0/libteec/src/tee_client_api.c: In function ‘TEEC_InvokeCommand’: +/home/thomas/projets/buildroot/output/build/optee-client-3.4.0/libteec/src/tee_client_api.c:581:8: error: cast increases required alignment of target type [-Werror=cast-align] + arg = (struct tee_ioctl_invoke_arg *)buf; + ^ + +This change is a squash of changes from [2] and [3]. + +[1] http://lists.busybox.net/pipermail/buildroot/2019-February/243437.html +[2] https://github.com/OP-TEE/optee_client/pull/146 +[3] https://github.com/OP-TEE/optee_client/pull/153 + +Reported-by: Thomas Petazzoni +Signed-off-by: Etienne Carriere +Signed-off-by: Victor Chong +--- + libteec/src/tee_client_api.c | 36 +++++++++++++++++++++++------------- + 1 file changed, 23 insertions(+), 13 deletions(-) + +diff --git a/libteec/src/tee_client_api.c b/libteec/src/tee_client_api.c +index 698092b..4d7b134 100644 +--- a/libteec/src/tee_client_api.c ++++ b/libteec/src/tee_client_api.c +@@ -140,7 +140,7 @@ TEEC_Result TEEC_InitializeContext(const char *name, TEEC_Context *ctx) + return TEEC_ERROR_BAD_PARAMETERS; + + for (n = 0; n < TEEC_MAX_DEV_SEQ; n++) { +- uint32_t gen_caps; ++ uint32_t gen_caps = 0; + + snprintf(devname, sizeof(devname), "/dev/tee%zu", n); + fd = teec_open_dev(devname, name, &gen_caps); +@@ -481,10 +481,13 @@ TEEC_Result TEEC_OpenSession(TEEC_Context *ctx, TEEC_Session *session, + uint32_t connection_method, const void *connection_data, + TEEC_Operation *operation, uint32_t *ret_origin) + { +- uint64_t buf[(sizeof(struct tee_ioctl_open_session_arg) + +- TEEC_CONFIG_PAYLOAD_REF_COUNT * +- sizeof(struct tee_ioctl_param)) / +- sizeof(uint64_t)] = { 0 }; ++ const size_t arg_size = sizeof(struct tee_ioctl_open_session_arg) + ++ TEEC_CONFIG_PAYLOAD_REF_COUNT * ++ sizeof(struct tee_ioctl_param); ++ union { ++ struct tee_ioctl_open_session_arg arg; ++ uint8_t data[arg_size]; ++ } buf; + struct tee_ioctl_buf_data buf_data; + struct tee_ioctl_open_session_arg *arg; + struct tee_ioctl_param *params; +@@ -493,6 +496,8 @@ TEEC_Result TEEC_OpenSession(TEEC_Context *ctx, TEEC_Session *session, + TEEC_SharedMemory shm[TEEC_CONFIG_PAYLOAD_REF_COUNT]; + int rc; + ++ memset(&buf, 0, sizeof(buf)); ++ + (void)&connection_data; + + if (!ctx || !session) { +@@ -501,10 +506,10 @@ TEEC_Result TEEC_OpenSession(TEEC_Context *ctx, TEEC_Session *session, + goto out; + } + +- buf_data.buf_ptr = (uintptr_t)buf; ++ buf_data.buf_ptr = (uintptr_t)&buf; + buf_data.buf_len = sizeof(buf); + +- arg = (struct tee_ioctl_open_session_arg *)buf; ++ arg = &buf.arg; + arg->num_params = TEEC_CONFIG_PAYLOAD_REF_COUNT; + params = (struct tee_ioctl_param *)(arg + 1); + +@@ -555,10 +560,13 @@ void TEEC_CloseSession(TEEC_Session *session) + TEEC_Result TEEC_InvokeCommand(TEEC_Session *session, uint32_t cmd_id, + TEEC_Operation *operation, uint32_t *error_origin) + { +- uint64_t buf[(sizeof(struct tee_ioctl_invoke_arg) + +- TEEC_CONFIG_PAYLOAD_REF_COUNT * +- sizeof(struct tee_ioctl_param)) / +- sizeof(uint64_t)] = { 0 }; ++ const size_t arg_size = sizeof(struct tee_ioctl_invoke_arg) + ++ TEEC_CONFIG_PAYLOAD_REF_COUNT * ++ sizeof(struct tee_ioctl_param); ++ union { ++ struct tee_ioctl_invoke_arg arg; ++ uint8_t data[arg_size]; ++ } buf; + struct tee_ioctl_buf_data buf_data; + struct tee_ioctl_invoke_arg *arg; + struct tee_ioctl_param *params; +@@ -567,6 +575,8 @@ TEEC_Result TEEC_InvokeCommand(TEEC_Session *session, uint32_t cmd_id, + TEEC_SharedMemory shm[TEEC_CONFIG_PAYLOAD_REF_COUNT]; + int rc; + ++ memset(&buf, 0, sizeof(buf)); ++ + if (!session) { + eorig = TEEC_ORIGIN_API; + res = TEEC_ERROR_BAD_PARAMETERS; +@@ -575,10 +585,10 @@ TEEC_Result TEEC_InvokeCommand(TEEC_Session *session, uint32_t cmd_id, + + bm_timestamp(); + +- buf_data.buf_ptr = (uintptr_t)buf; ++ buf_data.buf_ptr = (uintptr_t)&buf; + buf_data.buf_len = sizeof(buf); + +- arg = (struct tee_ioctl_invoke_arg *)buf; ++ arg = &buf.arg; + arg->num_params = TEEC_CONFIG_PAYLOAD_REF_COUNT; + params = (struct tee_ioctl_param *)(arg + 1); + +-- +2.17.1 +