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
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