2021-08-07 00:24:53

by Miao-chen Chou

[permalink] [raw]
Subject: [BlueZ PATCH v5 1/4] doc: Add errors.txt to describe errors of D-Bus method returns

Changes in v5:
- Remove the use of error codes.

doc/errors.txt | 233 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 233 insertions(+)
create mode 100644 doc/errors.txt

diff --git a/doc/errors.txt b/doc/errors.txt
new file mode 100644
index 000000000..047610c74
--- /dev/null
+++ b/doc/errors.txt
@@ -0,0 +1,233 @@
+D-Bus Method Return Error Codes
+===============================
+
+The motivation of having detailed error is to provide context-based failure
+reasons along with D-Bus method return so that D-Bus clients can build metrics
+and optimize their application based on these failure reasons. For instance, a
+client can build retry mechanism for a connection failure or improve the
+bottleneck of use scenario based on actionable metrics.
+
+These error codes are context-based but not necessarily tied to interface or
+method calls. For instance, if a pairing request failed due to connection
+failure, connection error would be attached to the method return of Pair().
+
+BR/EDR connection already connected
+===================================
+ errno: EALREADY, EISCONN
+
+ Either the profile is already connected or ACL connection is in place.
+
+BR/EDR connection page timeout
+==============================
+ errno: EHOSTDOWN
+
+ Failed due to page timeout.
+
+BR/EDR connection profile unavailable
+=====================================
+ errno: ENOPROTOOPT
+
+ Failed to find connectable services or the target service.
+
+BR/EDR connection SDP search
+============================
+ errno: none
+
+ Failed to complete the SDP search.
+
+BR/EDR connection create socket
+===============================
+ errno: EIO
+
+ Failed to create or connect to BT IO socket. This can also indicate
+ hardware failure in the controller.
+
+BR/EDR connection invalid arguments
+===================================
+ errno: EHOSTUNREACH
+
+ Failed due to invalid arguments.
+
+BR/EDR connection not powered
+=============================
+ errno: EHOSTUNREACH
+
+ Failed due to adapter not powered.
+
+BR/EDR connection not supported
+===============================
+ errno: EOPNOTSUPP, EPROTONOSUPPORT
+
+ Failed due to unsupported state transition of L2CAP channel or other
+ features either by the local host or the remote.
+
+BR/EDR connection bad socket
+============================
+ errno: EBADFD
+
+ Failed due to the socket is in bad state.
+
+BR/EDR connection memory allocation
+===================================
+ errno: ENOMEM
+
+ Failed to allocate memory in either host stack or controller.
+
+BR/EDR connection busy
+======================
+ errno: EBUSY
+
+ Failed due to other ongoing operations, such as pairing, busy L2CAP
+ channel or the operation disallowed by the controller.
+
+BR/EDR connection concurrent connection limit
+=============================================
+ errno: EMLINK
+
+ Failed due to reaching the concurrent connection limit to a device.
+
+BR/EDR connection timeout
+=========================
+ errno: ETIMEDOUT
+
+ Failed due to connection timeout
+
+BR/EDR connection refused
+=========================
+ errno: ECONNREFUSED
+
+ Refused by the remote device due to limited resource, security reason
+ or unacceptable address type.
+
+BR/EDR connection aborted by remote
+===================================
+ errno: ECONNRESET
+
+ Terminated by the remote device due to limited resource or power off.
+
+BR/EDR connection aborted by local
+==================================
+ errno: ECONNABORTED
+
+ Aborted by the local host.
+
+BR/EDR connection LMP protocol error
+====================================
+ errno: EPROTO
+
+ Failed due to LMP protocol error.
+
+BR/EDR connection canceled
+==========================
+ errno: none
+
+ Failed due to cancellation caused by adapter drop, unexpected device
+ drop, orincoming disconnection request before connection request is
+ completed.
+
+BR/EDR connection unknown error
+===============================
+ errno: ENOSYS
+
+ Failed due to unknown reason.
+
+LE connection invalid arguments
+===============================
+ errno: EINVAL
+
+ Failed due to invalid arguments.
+
+LE connection not powered
+=========================
+ errno: EHOSTUNREACH
+
+ Failed due to adapter not powered.
+
+LE connection not supported
+===========================
+ errno: EOPNOTSUPP, EPROTONOSUPPORT
+
+ Failed due to unsupported state transition of L2CAP channel or other
+ features (e.g. LE features) either by the local host or the remote.
+
+LE connection already connected
+===============================
+ errno: EALREADY, EISCONN
+
+ Either the BT IO is already connected or LE link connection in place.
+
+LE connection bad socket
+========================
+ errno: EBADFD
+
+ Failed due to the socket is in bad state.
+
+LE connection memory allocation
+===============================
+ errno: ENOMEM
+
+ Failed to allocate memory in either host stack or controller.
+
+LE connection busy
+==================
+ errno: EBUSY
+
+ Failed due to other ongoing operations, such as pairing, connecting,
+ busy L2CAP channel or the operation disallowed by the controller.
+
+LE connection refused
+=====================
+ errno: ECONNREFUSED
+
+ Failed due to that LE is not enabled or the attempt is refused by the
+ remote device due to limited resource, security reason or unacceptable
+ address type.
+
+LE connection create socket
+===========================
+ errno: EIO
+
+ Failed to create or connect to BT IO socket. This can also indicate
+ hardware failure in the controller.
+
+LE connection timeout
+=====================
+ errno: ETIMEDOUT
+
+ Failed due to connection timeout
+
+LE connection concurrent connection limit
+=========================================
+ errno: EMLINK
+
+ Failed due to reaching the synchronous connection limit to a device.
+
+LE connection abort by remote
+=============================
+ errno: ECONNRESET
+
+ Aborted by the remote device due to limited resource or power off.
+
+LE connection abort by local
+============================
+ errno: ECONNABORTED
+
+ Aborted by the local host.
+
+LE connection link layer protocol error
+=======================================
+ errno: EPROTO
+
+ Failed due to link layer protocol error.
+
+LE connection GATT browsing
+===========================
+ errno: none
+
+ Failed to complete the GATT browsing.
+
+LE connection unknown error
+===========================
+ errno: ENOSYS
+
+ Failed due to unknown reason.
--
2.32.0.605.g8dce9f2422-goog


2021-08-07 01:19:29

by bluez.test.bot

[permalink] [raw]
Subject: RE: Detailed error string

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=527809

---Test result---

Test Summary:
CheckPatch FAIL 1.26 seconds
GitLint PASS 0.53 seconds
Prep - Setup ELL PASS 47.63 seconds
Build - Prep PASS 0.14 seconds
Build - Configure PASS 8.37 seconds
Build - Make FAIL 178.99 seconds
Make Check FAIL 0.60 seconds
Make Distcheck FAIL 165.43 seconds
Build w/ext ELL - Configure PASS 8.42 seconds
Build w/ext ELL - Make FAIL 166.09 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf
Output:
error: BR/EDR and LE connection failure reasons
ERROR:POINTER_LOCATION: "foo* bar" should be "foo *bar"
#70: FILE: src/error.c:137:
+const char* btd_error_bredr_conn_from_errno(int errno_code)

ERROR:POINTER_LOCATION: "foo* bar" should be "foo *bar"
#112: FILE: src/error.c:179:
+const char* btd_error_le_conn_from_errno(int errno_code)

ERROR:POINTER_LOCATION: "foo* bar" should be "foo *bar"
#232: FILE: src/error.h:90:
+const char* btd_error_bredr_conn_from_errno(int errno_code);

ERROR:POINTER_LOCATION: "foo* bar" should be "foo *bar"
#233: FILE: src/error.h:91:
+const char* btd_error_le_conn_from_errno(int errno_code);

- total: 4 errors, 0 warnings, 205 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

"[PATCH] error: BR/EDR and LE connection failure reasons" has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: GitLint - PASS
Desc: Run gitlint with rule in .gitlint

##############################
Test: Prep - Setup ELL - PASS
Desc: Clone, build, and install ELL

##############################
Test: Build - Prep - PASS
Desc: Prepare environment for build

##############################
Test: Build - Configure - PASS
Desc: Configure the BlueZ source tree

##############################
Test: Build - Make - FAIL
Desc: Build the BlueZ source tree
Output:
src/error.c: In function ‘btd_error_bredr_conn_from_errno’:
src/error.c:140:7: error: ‘EALREADY’ undeclared (first use in this function)
140 | case EALREADY:
| ^~~~~~~~
src/error.c:140:7: note: each undeclared identifier is reported only once for each function it appears in
src/error.c:141:7: error: ‘EISCONN’ undeclared (first use in this function)
141 | case EISCONN:
| ^~~~~~~
src/error.c:143:7: error: ‘EHOSTDOWN’ undeclared (first use in this function)
143 | case EHOSTDOWN:
| ^~~~~~~~~
src/error.c:145:7: error: ‘ENOPROTOOPT’ undeclared (first use in this function)
145 | case ENOPROTOOPT:
| ^~~~~~~~~~~
src/error.c:147:7: error: ‘EIO’ undeclared (first use in this function)
147 | case EIO:
| ^~~
src/error.c:149:7: error: ‘EINVAL’ undeclared (first use in this function)
149 | case EINVAL:
| ^~~~~~
src/error.c:151:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
151 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
src/error.c:153:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
153 | case EOPNOTSUPP:
| ^~~~~~~~~~
src/error.c:154:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
154 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
src/error.c:156:7: error: ‘EBADFD’ undeclared (first use in this function)
156 | case EBADFD:
| ^~~~~~
src/error.c:158:7: error: ‘ENOMEM’ undeclared (first use in this function)
158 | case ENOMEM:
| ^~~~~~
src/error.c:160:7: error: ‘EBUSY’ undeclared (first use in this function)
160 | case EBUSY:
| ^~~~~
src/error.c:162:7: error: ‘EMLINK’ undeclared (first use in this function)
162 | case EMLINK:
| ^~~~~~
src/error.c:164:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
164 | case ETIMEDOUT:
| ^~~~~~~~~
src/error.c:166:7: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘ERR_LE_CONN_REFUSED’?
166 | case ECONNREFUSED:
| ^~~~~~~~~~~~
| ERR_LE_CONN_REFUSED
src/error.c:168:7: error: ‘ECONNRESET’ undeclared (first use in this function)
168 | case ECONNRESET:
| ^~~~~~~~~~
src/error.c:170:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
170 | case ECONNABORTED:
| ^~~~~~~~~~~~
src/error.c:172:7: error: ‘EPROTO’ undeclared (first use in this function)
172 | case EPROTO:
| ^~~~~~
src/error.c: In function ‘btd_error_le_conn_from_errno’:
src/error.c:182:7: error: ‘EINVAL’ undeclared (first use in this function)
182 | case EINVAL:
| ^~~~~~
src/error.c:184:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
184 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
src/error.c:186:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
186 | case EOPNOTSUPP:
| ^~~~~~~~~~
src/error.c:187:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
187 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
src/error.c:189:7: error: ‘EALREADY’ undeclared (first use in this function)
189 | case EALREADY:
| ^~~~~~~~
src/error.c:190:7: error: ‘EISCONN’ undeclared (first use in this function)
190 | case EISCONN:
| ^~~~~~~
src/error.c:192:7: error: ‘EBADFD’ undeclared (first use in this function)
192 | case EBADFD:
| ^~~~~~
src/error.c:194:7: error: ‘ENOMEM’ undeclared (first use in this function)
194 | case ENOMEM:
| ^~~~~~
src/error.c:196:7: error: ‘EBUSY’ undeclared (first use in this function)
196 | case EBUSY:
| ^~~~~
src/error.c:198:7: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘ERR_LE_CONN_REFUSED’?
198 | case ECONNREFUSED:
| ^~~~~~~~~~~~
| ERR_LE_CONN_REFUSED
src/error.c:200:7: error: ‘EIO’ undeclared (first use in this function)
200 | case EIO:
| ^~~
src/error.c:202:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
202 | case ETIMEDOUT:
| ^~~~~~~~~
src/error.c:204:7: error: ‘EMLINK’ undeclared (first use in this function)
204 | case EMLINK:
| ^~~~~~
src/error.c:206:7: error: ‘ECONNRESET’ undeclared (first use in this function)
206 | case ECONNRESET:
| ^~~~~~~~~~
src/error.c:208:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
208 | case ECONNABORTED:
| ^~~~~~~~~~~~
src/error.c:210:7: error: ‘EPROTO’ undeclared (first use in this function)
210 | case EPROTO:
| ^~~~~~
make[1]: *** [Makefile:9331: src/bluetoothd-error.o] Error 1
make: *** [Makefile:4147: all] Error 2


##############################
Test: Make Check - FAIL
Desc: Run 'make check'
Output:
src/error.c: In function ‘btd_error_bredr_conn_from_errno’:
src/error.c:140:7: error: ‘EALREADY’ undeclared (first use in this function)
140 | case EALREADY:
| ^~~~~~~~
src/error.c:140:7: note: each undeclared identifier is reported only once for each function it appears in
src/error.c:141:7: error: ‘EISCONN’ undeclared (first use in this function)
141 | case EISCONN:
| ^~~~~~~
src/error.c:143:7: error: ‘EHOSTDOWN’ undeclared (first use in this function)
143 | case EHOSTDOWN:
| ^~~~~~~~~
src/error.c:145:7: error: ‘ENOPROTOOPT’ undeclared (first use in this function)
145 | case ENOPROTOOPT:
| ^~~~~~~~~~~
src/error.c:147:7: error: ‘EIO’ undeclared (first use in this function)
147 | case EIO:
| ^~~
src/error.c:149:7: error: ‘EINVAL’ undeclared (first use in this function)
149 | case EINVAL:
| ^~~~~~
src/error.c:151:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
151 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
src/error.c:153:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
153 | case EOPNOTSUPP:
| ^~~~~~~~~~
src/error.c:154:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
154 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
src/error.c:156:7: error: ‘EBADFD’ undeclared (first use in this function)
156 | case EBADFD:
| ^~~~~~
src/error.c:158:7: error: ‘ENOMEM’ undeclared (first use in this function)
158 | case ENOMEM:
| ^~~~~~
src/error.c:160:7: error: ‘EBUSY’ undeclared (first use in this function)
160 | case EBUSY:
| ^~~~~
src/error.c:162:7: error: ‘EMLINK’ undeclared (first use in this function)
162 | case EMLINK:
| ^~~~~~
src/error.c:164:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
164 | case ETIMEDOUT:
| ^~~~~~~~~
src/error.c:166:7: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘ERR_LE_CONN_REFUSED’?
166 | case ECONNREFUSED:
| ^~~~~~~~~~~~
| ERR_LE_CONN_REFUSED
src/error.c:168:7: error: ‘ECONNRESET’ undeclared (first use in this function)
168 | case ECONNRESET:
| ^~~~~~~~~~
src/error.c:170:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
170 | case ECONNABORTED:
| ^~~~~~~~~~~~
src/error.c:172:7: error: ‘EPROTO’ undeclared (first use in this function)
172 | case EPROTO:
| ^~~~~~
src/error.c: In function ‘btd_error_le_conn_from_errno’:
src/error.c:182:7: error: ‘EINVAL’ undeclared (first use in this function)
182 | case EINVAL:
| ^~~~~~
src/error.c:184:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
184 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
src/error.c:186:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
186 | case EOPNOTSUPP:
| ^~~~~~~~~~
src/error.c:187:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
187 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
src/error.c:189:7: error: ‘EALREADY’ undeclared (first use in this function)
189 | case EALREADY:
| ^~~~~~~~
src/error.c:190:7: error: ‘EISCONN’ undeclared (first use in this function)
190 | case EISCONN:
| ^~~~~~~
src/error.c:192:7: error: ‘EBADFD’ undeclared (first use in this function)
192 | case EBADFD:
| ^~~~~~
src/error.c:194:7: error: ‘ENOMEM’ undeclared (first use in this function)
194 | case ENOMEM:
| ^~~~~~
src/error.c:196:7: error: ‘EBUSY’ undeclared (first use in this function)
196 | case EBUSY:
| ^~~~~
src/error.c:198:7: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘ERR_LE_CONN_REFUSED’?
198 | case ECONNREFUSED:
| ^~~~~~~~~~~~
| ERR_LE_CONN_REFUSED
src/error.c:200:7: error: ‘EIO’ undeclared (first use in this function)
200 | case EIO:
| ^~~
src/error.c:202:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
202 | case ETIMEDOUT:
| ^~~~~~~~~
src/error.c:204:7: error: ‘EMLINK’ undeclared (first use in this function)
204 | case EMLINK:
| ^~~~~~
src/error.c:206:7: error: ‘ECONNRESET’ undeclared (first use in this function)
206 | case ECONNRESET:
| ^~~~~~~~~~
src/error.c:208:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
208 | case ECONNABORTED:
| ^~~~~~~~~~~~
src/error.c:210:7: error: ‘EPROTO’ undeclared (first use in this function)
210 | case EPROTO:
| ^~~~~~
make[1]: *** [Makefile:9331: src/bluetoothd-error.o] Error 1
make: *** [Makefile:10436: check] Error 2


##############################
Test: Make Distcheck - FAIL
Desc: Run distcheck to check the distribution
Output:
../../src/error.c: In function ‘btd_error_bredr_conn_from_errno’:
../../src/error.c:140:7: error: ‘EALREADY’ undeclared (first use in this function)
140 | case EALREADY:
| ^~~~~~~~
../../src/error.c:140:7: note: each undeclared identifier is reported only once for each function it appears in
../../src/error.c:141:7: error: ‘EISCONN’ undeclared (first use in this function)
141 | case EISCONN:
| ^~~~~~~
../../src/error.c:143:7: error: ‘EHOSTDOWN’ undeclared (first use in this function)
143 | case EHOSTDOWN:
| ^~~~~~~~~
../../src/error.c:145:7: error: ‘ENOPROTOOPT’ undeclared (first use in this function)
145 | case ENOPROTOOPT:
| ^~~~~~~~~~~
../../src/error.c:147:7: error: ‘EIO’ undeclared (first use in this function)
147 | case EIO:
| ^~~
../../src/error.c:149:7: error: ‘EINVAL’ undeclared (first use in this function)
149 | case EINVAL:
| ^~~~~~
../../src/error.c:151:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
151 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
../../src/error.c:153:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
153 | case EOPNOTSUPP:
| ^~~~~~~~~~
../../src/error.c:154:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
154 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
../../src/error.c:156:7: error: ‘EBADFD’ undeclared (first use in this function)
156 | case EBADFD:
| ^~~~~~
../../src/error.c:158:7: error: ‘ENOMEM’ undeclared (first use in this function)
158 | case ENOMEM:
| ^~~~~~
../../src/error.c:160:7: error: ‘EBUSY’ undeclared (first use in this function)
160 | case EBUSY:
| ^~~~~
../../src/error.c:162:7: error: ‘EMLINK’ undeclared (first use in this function)
162 | case EMLINK:
| ^~~~~~
../../src/error.c:164:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
164 | case ETIMEDOUT:
| ^~~~~~~~~
../../src/error.c:166:7: error: ‘ECONNREFUSED’ undeclared (first use in this function)
166 | case ECONNREFUSED:
| ^~~~~~~~~~~~
../../src/error.c:168:7: error: ‘ECONNRESET’ undeclared (first use in this function)
168 | case ECONNRESET:
| ^~~~~~~~~~
../../src/error.c:170:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
170 | case ECONNABORTED:
| ^~~~~~~~~~~~
../../src/error.c:172:7: error: ‘EPROTO’ undeclared (first use in this function)
172 | case EPROTO:
| ^~~~~~
../../src/error.c: In function ‘btd_error_le_conn_from_errno’:
../../src/error.c:182:7: error: ‘EINVAL’ undeclared (first use in this function)
182 | case EINVAL:
| ^~~~~~
../../src/error.c:184:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
184 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
../../src/error.c:186:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
186 | case EOPNOTSUPP:
| ^~~~~~~~~~
../../src/error.c:187:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
187 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
../../src/error.c:189:7: error: ‘EALREADY’ undeclared (first use in this function)
189 | case EALREADY:
| ^~~~~~~~
../../src/error.c:190:7: error: ‘EISCONN’ undeclared (first use in this function)
190 | case EISCONN:
| ^~~~~~~
../../src/error.c:192:7: error: ‘EBADFD’ undeclared (first use in this function)
192 | case EBADFD:
| ^~~~~~
../../src/error.c:194:7: error: ‘ENOMEM’ undeclared (first use in this function)
194 | case ENOMEM:
| ^~~~~~
../../src/error.c:196:7: error: ‘EBUSY’ undeclared (first use in this function)
196 | case EBUSY:
| ^~~~~
../../src/error.c:198:7: error: ‘ECONNREFUSED’ undeclared (first use in this function)
198 | case ECONNREFUSED:
| ^~~~~~~~~~~~
../../src/error.c:200:7: error: ‘EIO’ undeclared (first use in this function)
200 | case EIO:
| ^~~
../../src/error.c:202:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
202 | case ETIMEDOUT:
| ^~~~~~~~~
../../src/error.c:204:7: error: ‘EMLINK’ undeclared (first use in this function)
204 | case EMLINK:
| ^~~~~~
../../src/error.c:206:7: error: ‘ECONNRESET’ undeclared (first use in this function)
206 | case ECONNRESET:
| ^~~~~~~~~~
../../src/error.c:208:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
208 | case ECONNABORTED:
| ^~~~~~~~~~~~
../../src/error.c:210:7: error: ‘EPROTO’ undeclared (first use in this function)
210 | case EPROTO:
| ^~~~~~
make[2]: *** [Makefile:9331: src/bluetoothd-error.o] Error 1
make[1]: *** [Makefile:4147: all] Error 2
make: *** [Makefile:10357: distcheck] Error 1


##############################
Test: Build w/ext ELL - Configure - PASS
Desc: Configure BlueZ source with '--enable-external-ell' configuration

##############################
Test: Build w/ext ELL - Make - FAIL
Desc: Build BlueZ source with '--enable-external-ell' configuration
Output:
src/error.c: In function ‘btd_error_bredr_conn_from_errno’:
src/error.c:140:7: error: ‘EALREADY’ undeclared (first use in this function)
140 | case EALREADY:
| ^~~~~~~~
src/error.c:140:7: note: each undeclared identifier is reported only once for each function it appears in
src/error.c:141:7: error: ‘EISCONN’ undeclared (first use in this function)
141 | case EISCONN:
| ^~~~~~~
src/error.c:143:7: error: ‘EHOSTDOWN’ undeclared (first use in this function)
143 | case EHOSTDOWN:
| ^~~~~~~~~
src/error.c:145:7: error: ‘ENOPROTOOPT’ undeclared (first use in this function)
145 | case ENOPROTOOPT:
| ^~~~~~~~~~~
src/error.c:147:7: error: ‘EIO’ undeclared (first use in this function)
147 | case EIO:
| ^~~
src/error.c:149:7: error: ‘EINVAL’ undeclared (first use in this function)
149 | case EINVAL:
| ^~~~~~
src/error.c:151:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
151 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
src/error.c:153:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
153 | case EOPNOTSUPP:
| ^~~~~~~~~~
src/error.c:154:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
154 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
src/error.c:156:7: error: ‘EBADFD’ undeclared (first use in this function)
156 | case EBADFD:
| ^~~~~~
src/error.c:158:7: error: ‘ENOMEM’ undeclared (first use in this function)
158 | case ENOMEM:
| ^~~~~~
src/error.c:160:7: error: ‘EBUSY’ undeclared (first use in this function)
160 | case EBUSY:
| ^~~~~
src/error.c:162:7: error: ‘EMLINK’ undeclared (first use in this function)
162 | case EMLINK:
| ^~~~~~
src/error.c:164:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
164 | case ETIMEDOUT:
| ^~~~~~~~~
src/error.c:166:7: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘ERR_LE_CONN_REFUSED’?
166 | case ECONNREFUSED:
| ^~~~~~~~~~~~
| ERR_LE_CONN_REFUSED
src/error.c:168:7: error: ‘ECONNRESET’ undeclared (first use in this function)
168 | case ECONNRESET:
| ^~~~~~~~~~
src/error.c:170:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
170 | case ECONNABORTED:
| ^~~~~~~~~~~~
src/error.c:172:7: error: ‘EPROTO’ undeclared (first use in this function)
172 | case EPROTO:
| ^~~~~~
src/error.c: In function ‘btd_error_le_conn_from_errno’:
src/error.c:182:7: error: ‘EINVAL’ undeclared (first use in this function)
182 | case EINVAL:
| ^~~~~~
src/error.c:184:7: error: ‘EHOSTUNREACH’ undeclared (first use in this function)
184 | case EHOSTUNREACH:
| ^~~~~~~~~~~~
src/error.c:186:7: error: ‘EOPNOTSUPP’ undeclared (first use in this function)
186 | case EOPNOTSUPP:
| ^~~~~~~~~~
src/error.c:187:7: error: ‘EPROTONOSUPPORT’ undeclared (first use in this function)
187 | case EPROTONOSUPPORT:
| ^~~~~~~~~~~~~~~
src/error.c:189:7: error: ‘EALREADY’ undeclared (first use in this function)
189 | case EALREADY:
| ^~~~~~~~
src/error.c:190:7: error: ‘EISCONN’ undeclared (first use in this function)
190 | case EISCONN:
| ^~~~~~~
src/error.c:192:7: error: ‘EBADFD’ undeclared (first use in this function)
192 | case EBADFD:
| ^~~~~~
src/error.c:194:7: error: ‘ENOMEM’ undeclared (first use in this function)
194 | case ENOMEM:
| ^~~~~~
src/error.c:196:7: error: ‘EBUSY’ undeclared (first use in this function)
196 | case EBUSY:
| ^~~~~
src/error.c:198:7: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘ERR_LE_CONN_REFUSED’?
198 | case ECONNREFUSED:
| ^~~~~~~~~~~~
| ERR_LE_CONN_REFUSED
src/error.c:200:7: error: ‘EIO’ undeclared (first use in this function)
200 | case EIO:
| ^~~
src/error.c:202:7: error: ‘ETIMEDOUT’ undeclared (first use in this function)
202 | case ETIMEDOUT:
| ^~~~~~~~~
src/error.c:204:7: error: ‘EMLINK’ undeclared (first use in this function)
204 | case EMLINK:
| ^~~~~~
src/error.c:206:7: error: ‘ECONNRESET’ undeclared (first use in this function)
206 | case ECONNRESET:
| ^~~~~~~~~~
src/error.c:208:7: error: ‘ECONNABORTED’ undeclared (first use in this function)
208 | case ECONNABORTED:
| ^~~~~~~~~~~~
src/error.c:210:7: error: ‘EPROTO’ undeclared (first use in this function)
210 | case EPROTO:
| ^~~~~~
make[1]: *** [Makefile:9331: src/bluetoothd-error.o] Error 1
make: *** [Makefile:4147: all] Error 2




---
Regards,
Linux Bluetooth