Legacy Networking | sparc/erc32: Incompatible pointer type error for sonic driver attach in net-legacy-config.c (#30)
Saahil Shaw (@Kernel)
gitlab at rtems.org
Sat Nov 7 06:26:19 UTC 2026
Issue created by Saahil Shaw: https://gitlab.rtems.org/rtems/pkg/rtems-net-legacy/-/work_items/30
## Summary
When building \`rtems-net-legacy\` on RTEMS 7 for the \`sparc/erc32\` BSP, compilation fails in \`testsuites/support/net-legacy-config.c\` due to a function signature mismatch between core RTEMS and \`rtems-net-legacy\`.
## Error
```
[217/218] Compiling testsuites/support/net-legacy-config.c
../../testsuites/support/net-legacy-config.c:34:3: error: initialization of 'int (*)(struct rtems_bsdnet_ifconfig *, int)' from incompatible pointer type 'int (*)(struct rtems_bsdnet_ifconfig *)' [-Wincompatible-pointer-types]
34 | RTEMS_BSP_NETWORK_DRIVER_ATTACH
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../testsuites/support/net-legacy-config.c:34:3: note: (near initialization for 'ifcfg.attach')
In file included from ../../testsuites/support/net-legacy-config.c:16:
/home/saahil/development/rtems/7/sparc-rtems7/erc32/lib/include/bsp.h:63:12: note: 'rtems_erc32_sonic_driver_attach' declared here
63 | extern int rtems_erc32_sonic_driver_attach(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Waf: Leaving directory `/home/saahil/development/rtems/rtems-net-legacy/build/sparc-rtems7-erc32'
Build failed
-> task in 'testsupport' failed with exit status 1 (run with -v to display more information)
```
## Cause
#### 1) **_erc32/lib/include/bsp.h_ -**
```
extern int rtems_erc32_sonic_driver_attach( struct rtems_bsdnet_ifconfig *config );
```
Takes only 1 arguement.
#### 2) **_include/rtems/rtems_bsdnet.h -_**
```
/*
* This function now handles attaching and detaching an interface.
* The parameter attaching indicates the operation being invoked.
* For older attach functions which do not have the extra parameter
* it will be ignored.
*/
int (*attach)(struct rtems_bsdnet_ifconfig *conf, int attaching);
```
The attach field of struct is defined to take 2 arguments.
While older C compilers permitted this assignment implicitly, GCC 14+ in RTEMS 7 treats `-Wincompatible-pointer-types` as a hard error.
### Environment
* RTEMS 7 (main)
* BSP: sparch/erc32
### Possible solutions:
1) Explicitly cast `RTEMS_BSP_NETWORK_DRIVER_ATTACH` in `net-legacy-config.c` to `(int (*)(struct rtems_bsdnet_ifconfig *, int))` as intended by the header comment.
2) Update the `erc32` BSP driver attach declaration/definition in core RTEMS to accept the 2nd `int attaching` parameter.
--
View it on GitLab: https://gitlab.rtems.org/rtems/pkg/rtems-net-legacy/-/work_items/30
You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/namespace/21/sent_notifications/6-352daagxeyljmgj20tf06said-l/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20261107/5d75f39d/attachment-0001.htm>
More information about the bugs
mailing list