ART 的默认配置编译不过去?

48 views
Skip to first unread message

rogerz

unread,
Jul 2, 2012, 11:09:16 AM7/2/12
to rt-threa...@googlegroups.com
Github上没有开issue功能,只好在这里报了。

更新到commit 5a465bf,在platform下编译,到clock_time.c时出错了,基本上可以确定是pthread.h里没有找到所需的类型定义引起的。

在rtconfig.h里把RT_USING_NEWLIB打开就正常了。
------------------------------------------------------------------------------
e:\workspace\ART\software\platform>scons

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build
arm-none-eabi-gcc -o build\components\pthreads\clock_time.o -c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -O0 -gdwarf-2 -DUSE_STDPERIPH_DRIVER -DRT_USING_MINILIBC -Iapplications -IE:\workspace\rt-thread\applications -I. -IE:\workspace\rt-thread -Idrivers -IE:\workspace\rt-thread\drivers -Ilibarduino -IE:\workspace\rt-thread\libarduino -ILibraries\STM32F4xx_StdPeriph_Driver\inc -IE:\workspace\rt-thread\Libraries\STM32F4xx_StdPeriph_Driver\inc -ILibraries\CMSIS\Device\ST\STM32F4xx\Include -IE:\workspace\rt-thread\Libraries\CMSIS\Device\ST\STM32F4xx\Include -ILibraries\CMSIS\Include -IE:\workspace\rt-thread\Libraries\CMSIS\Include -IE:\workspace\rt-thread\include -IE:\workspace\rt-thread\libcpu\arm\cortex-m4 -IE:\workspace\rt-thread\libcpu\arm\common -IE:\workspace\rt-thread\components\dfs -IE:\workspace\rt-thread\components\dfs\include -IE:\workspace\rt-thread\components\dfs\filesystems\romfs -IE:\workspace\rt-thread\components\dfs\filesystems\devfs -IE:\workspace\rt-thread\components\drivers\include -IE:\workspace\rt-thread\components\drivers\include -IE:\workspace\rt-thread\components\finsh -IE:\workspace\rt-thread\components\libc\minilibc -IE:\workspace\rt-thread\components\pthreads E:\workspace\rt-thread\components\pthreads\clock_time.c
In file included from E:\workspace\rt-thread\components\pthreads\clock_time.c:2:0:

E:\workspace\rt-thread\components\pthreads/pthread.h:197:15: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads/pthread.h:197:15: warning: its scope is only this definition or declaration, which is probably not what you want

E:\workspace\rt-thread\components\pthreads/pthread.h:211:72: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads/pthread.h:212:72: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads/pthread.h:269:46: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads/pthread.h:270:46: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads/pthread.h:271:52: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads\clock_time.c: In function 'clock_time_system_init':

E:\workspace\rt-thread\components\pthreads\clock_time.c:7:5: error: 'time_t' undeclared (first use in this function)

E:\workspace\rt-thread\components\pthreads\clock_time.c:7:5: note: each undeclared identifier is reported only once for each function it appears in

E:\workspace\rt-thread\components\pthreads\clock_time.c:7:12: error: expected ';' before 'time'

E:\workspace\rt-thread\components\pthreads\clock_time.c:11:5: error: 'time' undeclared (first use in this function)

E:\workspace\rt-thread\components\pthreads\clock_time.c:22:5: error: invalid use of undefined type 'struct timeval'

E:\workspace\rt-thread\components\pthreads\clock_time.c:23:5: error: invalid use of undefined type 'struct timeval'

E:\workspace\rt-thread\components\pthreads\clock_time.c: At top level:

E:\workspace\rt-thread\components\pthreads\clock_time.c:26:37: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads\clock_time.c: In function 'clock_time_to_tick':

E:\workspace\rt-thread\components\pthreads\clock_time.c:30:18: error: storage size of 'tp' isn't known

E:\workspace\rt-thread\components\pthreads\clock_time.c:35:14: error: 'NULL' undeclared (first use in this function)

E:\workspace\rt-thread\components\pthreads\clock_time.c:40:12: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:42:56: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:43:18: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:47:18: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:48:18: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c: At top level:

E:\workspace\rt-thread\components\pthreads\clock_time.c:58:46: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads\clock_time.c:58:5: error: conflicting types for 'clock_getres'

E:\workspace\rt-thread\components\pthreads/pthread.h:269:5: note: previous declaration of 'clock_getres' was here

E:\workspace\rt-thread\components\pthreads\clock_time.c: In function 'clock_getres':

E:\workspace\rt-thread\components\pthreads\clock_time.c:62:16: error: 'EINVAL' undeclared (first use in this function)

E:\workspace\rt-thread\components\pthreads\clock_time.c:66:5: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:67:5: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c: At top level:

E:\workspace\rt-thread\components\pthreads\clock_time.c:72:46: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads\clock_time.c:72:5: error: conflicting types for 'clock_gettime'

E:\workspace\rt-thread\components\pthreads/pthread.h:270:5: note: previous declaration of 'clock_gettime' was here

E:\workspace\rt-thread\components\pthreads\clock_time.c: In function 'clock_gettime':

E:\workspace\rt-thread\components\pthreads\clock_time.c:78:16: error: 'EINVAL' undeclared (first use in this function)

E:\workspace\rt-thread\components\pthreads\clock_time.c:85:4: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:85:2: error: invalid use of undefined type 'struct timeval'

E:\workspace\rt-thread\components\pthreads\clock_time.c:86:4: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:86:2: error: invalid use of undefined type 'struct timeval'

E:\workspace\rt-thread\components\pthreads\clock_time.c: At top level:

E:\workspace\rt-thread\components\pthreads\clock_time.c:91:52: warning: 'struct timespec' declared inside parameter list

E:\workspace\rt-thread\components\pthreads\clock_time.c:91:5: error: conflicting types for 'clock_settime'

E:\workspace\rt-thread\components\pthreads/pthread.h:271:5: note: previous declaration of 'clock_settime' was here

E:\workspace\rt-thread\components\pthreads\clock_time.c: In function 'clock_settime':

E:\workspace\rt-thread\components\pthreads\clock_time.c:99:16: error: 'EINVAL' undeclared (first use in this function)

E:\workspace\rt-thread\components\pthreads\clock_time.c:104:13: error: dereferencing pointer to incomplete type

E:\workspace\rt-thread\components\pthreads\clock_time.c:109:5: error: invalid use of undefined type 'struct timeval'

E:\workspace\rt-thread\components\pthreads\clock_time.c:110:5: error: invalid use of undefined type 'struct timeval'


scons: building terminated because of errors.

 ,---.  Rogerz Zhang
( @ @ ) Human, not octopus
 ).-.(  Chase what you love. Let the rest go.
'/|||\` Code > Github | Note > Tumblr | Random > twitter 微博 | Share > Google+ 
  '|`   AsciiArt < Shimrod(hh)

bernard

unread,
Jul 2, 2012, 11:28:11 AM7/2/12
to rt-threa...@googlegroups.com
这个确实有这个问题,
默认pthreads是打开的,但是phreads的实现目前不支持minilibc,所以得需要newlib才行。


2012/7/2 rogerz <rogerz...@gmail.com>

Grissiom

unread,
Jul 2, 2012, 11:32:54 AM7/2/12
to rt-threa...@googlegroups.com
On Mon, Jul 2, 2012 at 11:09 PM, rogerz <rogerz...@gmail.com> wrote:
Github上没有开issue功能,只好在这里报了。


貌似 issue 要报到 https://github.com/RTGUI/ART …… 嗯,怎么样把整过 repo 迁移到 RT-Thread 名下呢?
 
--
Cheers,
Grissiom

bernard

unread,
Jul 2, 2012, 11:37:29 AM7/2/12
to rt-threa...@googlegroups.com
还真是这样,看来不能乱clone过来,得从头导入进去

2012/7/2 Grissiom <chaos....@gmail.com>

rogerz

unread,
Jul 2, 2012, 11:39:42 AM7/2/12
to rt-threa...@googlegroups.com
个人有transfer owner。组织没用过,直接删不成吗?
Issue手工拷贝一下吧,就三条。然后把RTGUI下的停掉。


--

rogerz

unread,
Jul 2, 2012, 11:44:12 AM7/2/12
to rt-threa...@googlegroups.com
Issue在admin下启用就可以了吧,不知道为什么默认是关闭的。

现在除了fork from RTGUI/ART看着有点怪之外别的没丢什么吧,GIT的每个commit号称宇宙唯一,clone过来应该完全相同。


--

bernard

unread,
Jul 2, 2012, 11:47:59 AM7/2/12
to rt-threa...@googlegroups.com
是的,经过admin开启后就有了。OK,那么就按照这样走下去吧

吴洋勇

unread,
Jul 2, 2012, 12:00:44 PM7/2/12
to rt-threa...@googlegroups.com
早些时间从RTGUI/ART clone 了一份,然后提交时,发现还是提交到 RTGUI/ART 里面去了。
得再从 RT-Thread/ART clone一次才行。
--
吴洋勇

Grissiom

unread,
Jul 2, 2012, 12:06:20 PM7/2/12
to rt-threa...@googlegroups.com
2012/7/3 吴洋勇 <wuyan...@gmail.com>

早些时间从RTGUI/ART clone 了一份,然后提交时,发现还是提交到 RTGUI/ART 里面去了。
得再从 RT-Thread/ART clone一次才行。


github 上的 clone 其实和本地的 repo 无关(其实哪个都是一样的),只是对于 github 来说可以节省空间和产生一些记录吧(猜)……

如果要是在原有的 repo 里想 push 到新的 github 上,可能需要修改 .git/config :

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = g...@github.com:RTGUI/ART.git

把 url = g...@github.com:RTGUI/ART.git 改成 url = g...@github.com:RT-Thread/ART.git

其他的应该不用动。



--
Cheers,
Grissiom

bernard

unread,
Jul 2, 2012, 12:08:16 PM7/2/12
to rt-threa...@googlegroups.com
目前ART会频繁更新,因为还有些东西需要处理

另外一个是,ART需要的RT-Thread代码需要配合最新的trunk版本才能编译(用了其中的 ringbuffer实现,新的serial驱动框架)...

rogerz

unread,
Jul 2, 2012, 12:20:41 PM7/2/12
to rt-threa...@googlegroups.com
commit总是到本地的,push如果不指定repo,就是push到预设的upstream,默认是origin,可以通过set upstream解决。
不过在同时建立多个remote时还是慎用无参数的push/pull,容易搞不清楚目标。

我比较习惯git remote update,然后再merge,push时尽量用完整命令git push origin master:master
Reply all
Reply to author
Forward
0 new messages